我正在尝试使用 jquery 构建一个 UI 原型(prototype),它允许在列表末尾添加一对 li 元素。第一对进展顺利,但随着添加更多对,两个较早注入(inject)的元素 (li.box) 中的一个消失了。页面上只会保留一个 li.box。我不明白为什么。
HTML
<ul id="ruleset" class="ruleset">
<li class="rule"">
<div class="text">Rule </div>
<select name="join" class="join">
<option value="+">+</option>
<option value="AND">AND</option>
<option value="OR">OR</option>
</select>
</li>
</ul>
Javascript
$(document).ready(function(){
var liBox=$('<li>').attr('class','box').text('>');
$('body').on('change', 'select.join', function(){
var copy=$(this).parent().clone();
var li = $(this).parent();
var par=li.parent();
li.after(liBox); //an item between each rule to eventually contain controls
par.append(copy); //a copy of the rule item
});
});
最佳答案
JQuery 实际上不会克隆 li.box,而只是移动它。所以你的代码应该是:
li.after(liBox.clone());
fiddle :http://jsfiddle.net/yqXhM/1/
关于javascript - 是什么删除了我注入(inject)的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537307/