2012-03-21 96 views
0

HTML:jQuery的追加本身運行兩次,多次追加,雙追加

<body> 
<p><a href="#" class="link" >Apples</a> <a href="#" class="link" >Berries</a> <a href="#" class="link">Carrots</a></p> 
<select id="list"></select> 
</body> 

的Jquery:

$('.link').click(function(){ 
    var item = $(this).text(); 
    $('#list').append('<option>'+item+'<\option>'); 
}); 

應該從HTML鏈接標記,如蘋果或胡蘿蔔但是,當追加新值我點擊它它是這樣做的(每個獲得兩行)

結果:

results

埃維單擊結果在兩個選項之一與單詞另一個空白。更奇怪的是它似乎工作,如果我拿出的東西的HTML部分..只需使用文本。

+0

布蘭登是不夠好加我的形象給我。這是關於它看到的差距。它爲每次點擊添加兩行。 – user1283754 2012-03-21 15:46:43

回答

9

我不知道這是爲什麼造成這種現象,但問題是,

$('#list').append('<option>'+item+'<\option>'); 

應該是一個正斜槓

$('#list').append('<option>'+item+'</option>'); 
+0

這可能是因爲瀏覽器不明白「<\option>」是什麼,所以它試圖「自動糾正」的東西。 – 2012-03-21 15:42:59

+0

就是這樣.. Gesh ..謝謝但是很好記錄這種奇怪的行爲!我改變它/選項,它的工作..總是平凡的細節..(我必須把一個小數位在錯誤的地方或東西,我總是這樣做...) - 辦公空間..謝謝布蘭登! – user1283754 2012-03-21 15:47:56

+0

瀏覽器正在將不正確的'<\option>'視爲空白選項的開頭,而不是'

2

這種方法工作正常,我。

$(function(){ 

    $('.link').click(function(){ 
     var item = $(this).text(); 
     $('<option>'+item+' </option>').appendTo($("#list")); 
    });; 

});​ 

工作樣本:http://jsfiddle.net/mKTzx/4/