我找不到从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 ?
答案 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>