2014-10-20 17 views
0

我正在嘗試從外部JavaScript數組中填充選擇列表。它的工作原理,但我試圖填充只有特定的值使用ID列,這是失敗的。我使用複選框和'If'語句來查看哪個框被選中,並根據此選擇填充適當的數組值。然後,我在for循環中使用另一個'If'來匹配數組中的ID值,並將匹配的值添加到選擇中。但是,它似乎完全無視條件並將整個數組讀入選擇列表。我的代碼可能是一個明顯的錯誤,因爲我只是一個新手。隔離外部.js數組中的特定值

功能populateIslandList(){

 var form = document.forms["island_form"]; 
     var islands = form.islands; 
     if (islands[0].checked){alert("works"); 
      for (i = 0; i < pislands.length; i++) 
      if (pislands[i][1] = 1){ 
      document.forms["location"].islands.options[i] = 
      new Option(pislands[i][0], i)}}; 
     if (islands[1].checked){alert("works"); 
      for (i = 0; i < pislands.length; i++) 
      if (pislands[i][1] = 2){ 
      document.forms["location"].islands.options[i] = 
      new Option(pislands[i][0], i)}};  
     } 
+0

請發佈您的所有代碼,並且確實應該創建一個[jsfiddle](http://jsfiddle.net/)。但是馬上就好像你試圖通過ID來獲取兩個元素。只有一個元素可以有一個ID。 – EvilZebra 2014-10-20 02:27:02

回答

0

你的第一個錯誤是在這裏:

var islands = document.getElementById("island_form"); 

document.getElementById()返回一個DOM元素,而不是對象的列表。因此,islands[0]islands[1]將會被定義爲undefined,並且islands[0].checked將會產生腳本錯誤。

您只能擁有一個具有給定ID的DOM元素。你可以有一個類名的多個元素,所以也許你應該切換到使用類名和使用document.getElementsByClassName("something")


僅供參考,你應該尋找在瀏覽器錯誤控制檯或調試器控制檯來查看腳本錯誤,因爲這應該給了你一些麻煩的跡象。