javascript - 是什么删除了我注入(inject)的元素?

标签 javascript jquery dom

我正在尝试使用 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/

相关文章:

JavaScript 运行时错误 : 'fidoCallback' is undefined

火狐实时 DOM

javascript - 在不同页面上使用相同的 id 会导致图片元素无法渲染?

jQuery:计算字符串中字符的出现次数

javascript - 如何使用Background.js更新选项卡然后执行内容脚本?

jquery - 发送至 UI 的异常消息

javascript - FireFox 中的自动滚动

php - 检测下载是否完成

javascript - 设置搜索字段的默认值 - 请帮忙!

javascript - Canvas 正弦曲线非常模糊。我不知道为什么它模糊