2015-02-17 34 views
2

我無法解釋這個.append()行爲......JQuery的追加STANGE行爲

var listTopic = $.parseJSON(data); 
for(i = 0; i < listTopic.length ; i++) 
{ 
    $('#idSelect').append('<option>').append(listTopic[i].name).append('</option>'); 
} 

輸出:

<option></option> 
value1 
<option></option> 
value2 

回答

2

它看起來像瀏覽器自動插入關閉/打開部分是因爲標籤您正在插入的標籤。

您可以使用以下代替:

var listTopic = $.parseJSON(data); 
for(i = 0; i < listTopic.length ; i++) { 
    $('#idSelect').append('<option>' + listTopic[i].name + '</option>'); 
} 

或者,你也可以使用:

var listTopic = $.parseJSON(data); 
for(i = 0; i < listTopic.length ; i++) { 
    $('#idSelect').append($('<option />').text(listTopic[i].name)); 
} 

如果你想設置在同一時間value /文:

var listTopic = $.parseJSON(data); 
for(i = 0; i < listTopic.length ; i++) { 
    $('#idSelect').append($('<option />').val(listTopic[i].name).text(listTopic[i].name)); 
}