jQuery each-Method附加项目两次

时间:2016-06-27 13:56:47

标签: jquery

我想用选项动态填充选择(来自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
            }));
        });
    }
};

1 个答案:

答案 0 :(得分:3)

为什么foreach?你做了两次! :)

以下是您的代码的较短版本。我比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]
        }));
};