1

我需要删除其中一个嵌套的 div。我可以删除 div#parent (+divs inside):

var $s = $(s).not('div#parent');

但我不能只删除里面的一个 div(例如 div#first):

var s = '<h1>heading</h1><div id="parent"><div id="first"><p>paragraph</p></div><div id="second"><p> second div</p></div></div>';

        var $s = $(s).not('div#parent > div#first');

        $('body').append($s);  // it shows all html

这个场景是如何完成的?

4

2 回答 2

3

remove将其附加到正文后尝试使用。

var s = '<h1>heading</h1>
         <div id="parent">
            <div id="first"><p>paragraph</p>
            </div><div id="second"><p> second div</p>
         </div></div>';


$('body').append(s); // it shows all html

$('#first').remove();
于 2013-07-10T21:08:31.910 回答
1

.not实际上是在过滤顶级元素,这就是$(s)返回的内容:

> $(s)
[<h1>​heading​&lt;/h1>​, <div id=​"parent">​…​&lt;/div>​]

由于它们都不匹配选择器,因此不会从匹配的元素集中删除任何内容。

查找并删除元素:

var $s = $(s);
$s.find('#first').remove();
于 2013-07-10T21:08:22.710 回答