2015-02-17 70 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)); 
}