2016-06-27 98 views
0

我想用選項(來自textarea,逐行)動態地填充選擇項。但是下面的代碼片段會附加兩次。我有缺陷的地方在哪裏?感謝您的提示。jQuery each-Method追加項目兩次

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 
      })); 
     }); 
    } 
}; 
+2

爲什麼''.each()'在'for'循環中? –

+0

嗨,如果我不使用$ .each,我不會一行一行地收到物品 – mm1975

回答

3

爲什麼for AND 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] 
     })); 
}; 
+0

嗨eisbehr,這很好用!非常感謝你 – mm1975

+0

不客氣!隨意標記就是成功。 ;) – eisbehr

+0

我可以問另外一個問題嗎?如果在'testname,testvalue,testcolor,...'這樣的行中有文本。它應該只附加第一個文本'testname'。第一個逗號前的所有內容。我怎樣才能一行一行地分割它? – mm1975