我想用选项动态填充选择(来自textarea,逐行)。但是以下代码段会将项目附加两次。哪里有我的缺陷?感谢您的提示。
function changeOptions() {
var lines = [];
$('#simulation').empty();
var lines = $('textarea').val().split('\n');
console.log ('lines.length ', lines.length);
for (var i = 0; i < lines.length; i++) {
$.each(lines, function(i, lines) {
$('#simulation').append($('<option>', {
value : lines,
text : lines
}));
});
}
};
答案 0 :(得分:3)
为什么for
和each
?你做了两次! :)
以下是您的代码的较短版本。我比for
更喜欢each
,因为它在这样的循环中更快。对于你想做的事情,for
非常容易使用。
function changeOptions() {
var select = $('#simulation').empty(),
lines = $('textarea').val().split('\n');
for( var i = 0; i < lines.length; i++ )
select.append($('<option>', {
value : lines[i],
text : lines[i]
}));
};