从jQuery集中删除顶级项

时间:2010-11-09 23:33:37

标签: jquery

我找不到从jQuery集中删除顶级项的方法。这是我的尝试:

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
    <script>
        $(function() {
            var data = '<div id="node_1">aa</div> <div id="node_2">bb</div> <div id="node_3">cc</div>';
            var nodes = $(data);
            nodes.remove("#node_2");
            $("#container").append(nodes);
        });
    </script>
</head>
<body>
    <div id="container"> </div>
</body>
</html>

我期望容器中有以下内容:

<div id="container">
    <div id="node_1">aa</div>
    <div id="node_3">cc</div>
</div>

但是节点#2没有被删除。

如何在将插入文档之前删除节点#2

2 个答案:

答案 0 :(得分:2)

显然,您无法删除目前不在DOM中的DOM节点。

您可以使用:

nodes = nodes.not('#b');

请记住,即使在操作之后(和期间),ID也应该是唯一的。

答案 1 :(得分:1)

编辑 - 更新后支持不将div插入DOM,只需在插入前删除它们。

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
    <script>
        $(function() {
            var data = '<div class="1">aa</div> <div class="2">bb</div> <div class="3">cc</div>';
            $("#container_1").append(data);
            var nodes = jQuery(data).not('.2');   
            // In this example it's '.2',  
            // though you changed your id's in the original to something else
            $("#container_2").append(nodes);
        });
    </script>
</head>
<body>
    <div id="container_1"> </div>
    <div id="container_2"> </div>
</body>
</html>