2012-03-21 63 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/