我创建了一个在我的html代码中创建option
的Javascript脚本,当我想在我的变量中放置一个循环时,我遇到了问题。
代码告诉我这个:
<select>
<option>undefined</option>
</select>
我有一张像
这样的表格var event = ["Exercice1","Exercice2","Exercice3"];
首先,这是我的变量:
iDiv = $('<select class="form-control">' +
event.forEach(function (eve) {
'<option>'+eve+'</option>'
})
+'</select>');
iBr = $('</br>');
iDiv.attr('id', 'select' + (currentDivsCount + i));
iDiv.attr('name', 'select' + (currentDivsCount + i));
iDiv.appendTo('table');
iBr.appendTo('table');
编辑:
我创建了一个其他数组,其中包含所有事件的ID,我想将它们分别放入
var EventId = ["1","2","3"]
<option name="IdEvent">
我试过了:
iDiv = $('<select class="form-control"><option name="'+eventId.join()+'">'
+ eventlist.join("<option>")+ '</select>');
但我有这个:
<option name="1,2,3,4,5,6">Exercice1</option>
感谢您的帮助
答案 0 :(得分:0)
使用.map().join()
代替.forEach()
。
iDiv = $('<select class="form-control">' +
event.map(function (eve) {
return '<option>'+eve+'</option>'
}).join("")
+'</select>');
.map()
方法创建一个新数组,其中包含您从函数返回的值,然后.join("")
将该数组的内容作为单个字符串连接。
您也可以这样写,完全不需要.map()
:
iDiv = $('<select class="form-control"><option>' +
event.join("</option><option>")
+'</option></select>');
由于option
标签不需要关闭才能生效,因此您可以将其缩短一点。
iDiv = $('<select class="form-control"><option>' + event.join("<option>") + '</select>');