2017-04-18 164 views
-1

我正試圖用變量中的數據填充下拉菜單。這是我迄今爲止所做的,並且不起作用。我究竟做錯了什麼?使用數組填充下拉列表

<script> 
$(function() { 
    $('#dropdownMenu1').click(function() { 
     var director_names = {"director_name": ["Aaron Schneider", "Aaron Seltzer", "Abel Ferrara", "Adam Goldberg", "Adam Marcus", "Adam McKay", "Adam Rapp", "Adam Rifkin", "Adam Shankman", "Adrian Lyne", "Adrienne Shelly", "Agnieszka Holland", "Agnieszka Wojtowicz-Vosloo", "Akiva Goldsman", "Akiva Schaffer", "Alan Cohn", "Alan J. Pakula", "Alan Metter", "Alan Parker", "Alan Poul", "Alan Rudolph", "Alan Shapiro", "Alan Taylor"]}; 

     var myDDL = document.getElementById("dropdownMenu1"); 
       var i; 
       for (i = 0; i < director_names.director_name.length; i++) { 
        var option = document.createElement("option"); 
        option.text = director_names.director_name[i].name; 

        option.value = director_names.director_name[i].address; 
        try { 
         myDDL.options.add(option); 
        } 
        catch (e) { 
         alert(e); 
        } 
       } 
    }); 
}); 
</script> 
+2

你的json不包含'name'和'address' ..它是一個字符串數組,所以你只能在'option'的'value'和'text'中使用'director_names.director_name [i]'' 。 –

+0

這是無效的JavaScript;我假設這是因爲在關閉'script'標籤之前已經刪除了一些內容...... var director_names:{「...」};'行不符合你的想法,你需要使用一個'='爲變量賦值。使用這樣的':',它被解釋爲[標籤](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label)。有[在這個問題沒有JSON](http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation),只有一個對象文字,你認爲是JSON。 –

回答

2

您至少有一個語法錯誤。嘗試:

<script> 
     $(document).ready(function() { 
     var director_names = {"director_name": ["Aaron Schneider", "Aaron Seltzer", "Abel Ferrara", "Adam Goldberg", "Adam Marcus", "Adam McKay", "Adam Rapp", "Adam Rifkin", "Adam Shankman", "Adrian Lyne", "Adrienne Shelly", "Agnieszka Holland", "Agnieszka Wojtowicz-Vosloo", "Akiva Goldsman", "Akiva Schaffer", "Alan Cohn", "Alan J. Pakula", "Alan Metter", "Alan Parker", "Alan Poul", "Alan Rudolph", "Alan Shapiro", "Alan Taylor"]} 

     var myDDL = document.getElementById("dropdownMenu1"); 

     for (i = 0; i < director_names.director_name.length; i++) { 
      var option = document.createElement("option"); 
      option.text = director_names.director_name[i]; 

      option.value = director_names.director_name[i]; 
      try { 
      myDDL.options.add(option); 
      } 
      catch (e) { 
      alert(e); 
      } 
     } 
     }); 
</script> 

而且,正如G. Petriolly所說,您只有該JSON中的名稱,您沒有地址。我用上面的代碼創建了this jsfiddle以顯示選擇框填充了名稱。