单击元素后,我试图删除下面的所有元素p
。你能给我任何指示我哪里出错了吗?
<h2>Heading</h2>
<a href="#">
<p>Click me to delete everything</p>
</a>
$('p').click(function() {
$(this).remove().parent().remove().prev().remove();
});
这是一个jsfiddle。
删除 之后<p>
,它确实从 DOM中删除了。因此它不再有父母,并且.parent()
不会工作。相反,首先选择所有元素,然后删除,例如http://jsfiddle.net/BcAa9/4/。
$('p').click(function() {
$(this).parent().prev().addBack().remove();
});
<div>
<h2>Heading</h2>
<a href="#">
<p>Click me to delete everything</p>
</a>
</div>
$('p').click(function() {
$(this).parent().parent().remove();
});
我建议(假设您要删除的前一个兄弟姐妹a
:
$(this).closest('a').prev().andSelf().remove();
如果您可以将元素包装在容器中,则变得更容易:
<div class="container">
<h2>Heading</h2>
<a href="#">
<p>Click me to delete everything</p>
</a>
</div>
$('p').click(
function() {
$(this).closest('.container').remove();
});
参考:
您可能希望将所有内容包装在 div 或 span 标记中,然后使用 jquery 的最接近()函数(http://api.jquery.com/closest/)查找该父元素并将其删除。这将使您的 javascript 代码更简洁。