2015-07-03 88 views
-2

我試圖創建新的select元素,將它附加到一個div,然後用一些數據填充它。問題是我需要每個下拉菜單都有一個唯一的ID。爲什麼我不能爲我的新選擇元素創建一個ID?

我想下面的代碼:

var dropDowns = []; 
for (var i = 0; i < data.results.length; i++) { 
       dropDowns[i] = $('<select id=\"data_\"' + i + '>').appendTo('.dropDowns'); 
       for (var b = 0; b < data['data_' + data.results[i]].length; b++) { 
        dropDowns[i].append($("<option>").attr('value', data['data_' + data.results[i]][b].id).text(data['data_' + data.results[i]][b].description)); 
       } 
} 

正如你可以看到我試圖分配'data_' + i,但我的元素看起來像:

<select id="data_" 0=""> 

但它應該是這樣的:

<select id="data_0"> 

我知道我錯過了一些非常小而基本的東西,但我真的不能發現它,作爲一個js新手。

你能給我一個推動力嗎?

+0

嘗試刪除'data_'周圍的'雙引號'。或者嘗試** [此方法](http://stackoverflow.com/a/31116533/4365626)** –

回答

3

你把「是遞增變量,而不是後之前結束的屬性值

'<select id=\"data_\"' + i + '>' 

應該

'<select id=\"data_' + i + '\">' 

也就是說,動態生成ID通常是一個糟糕的主意,你幾乎可以肯定會保持對JS數組中元素的引用或基於它的p DOM中的命題(例如myForm.querySelectorAll('select')[i])。

相關問題