2015-07-03 54 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])。

相关问题