根据here,jquery的remove函数应该像这样工作..
$('div').remove('selector');
我正在尝试in this example。
HTML:
<div class="wrapper">
<p class="unwanted">This should be removed</p>
<p class="retained">This will remain</p>
</div>
JavaScript的:
jQuery(document).ready(function($) {
$('div').remove('p.unwanted'); //not working
//$('p.unwanted').remove(); //this works
});
它不起作用。我做错了什么?
答案 0 :(得分:1)
你误解了文档的内容。它不是在寻找与匹配选择器匹配的匹配元素的后代的元素,它只是将已经匹配的元素集合过滤到与选择器匹配的元素,然后将它们删除。
如果你有这个HTML:
<div class="wanted">Some text</div>
<div class="wanted">Some more text</div>
<div class="unwanted">Some unwanted text</div>
然后执行这个jQuery:
$('div').remove('.unwanted');
然后它只删除第三个<div>
(其上带有unwanted
类的那个),因为它首先选择所有 <div>
元素,并且然后只删除与选择器匹配的那些。
答案 1 :(得分:1)
你正试图删除div和p.unwanted之类的东西。 remove()中的过滤器应用于当前节点集,在本例中为所有div元素。
改为使用子集:
$('div').children().remove('p.unwanted');
答案 2 :(得分:0)
您应该使用以下内容:
$('p').remove('.unwanted');
remove
中的参数作为过滤器。在这里,您首先选择所有<p>
元素,然后仅删除 那些具有类unwanted
的元素。
答案 3 :(得分:0)
试试这个
$(document).ready(function() {
$('div').find('p.unwanted').attr('class', '');
});