JavaScript中的循环和变量

时间:2014-12-07 20:03:42

标签: javascript jquery

我创建了一个在我的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>

感谢您的帮助

1 个答案:

答案 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>');