我有以下情况,我正在尝试使用某个整数找到div,然后删除它包含父div(如果找到)。
<div id="top_container">
<div class="img_id">0</div>
</div>
<script>
$('#button').click(function(){
$(".img_id:contains(0)").closest("div").remove();
});
</script>
但由于某种原因,这只会删除类img_id
的div,但不会删除它的父div。我的问题是,如何在找到正确的整数值后删除它的父div?
答案 0 :(得分:1)
closest()将返回祖先树中的self或最接近的元素,因此您可以在这种情况下使用.parent()
对于集合中的每个元素,获取与之匹配的第一个元素 选择器通过测试元素本身并遍历其中 DOM树中的祖先。
尝试
$('#button').click(function(){
$(".img_id:contains(0)").parent("div").remove();
});
同样使用:contains可能不是最好的主意,因为它将返回值为10的真值,我大多喜欢使用像
这样的手动过滤器$('#button').click(function () {
$(".img_id").filter(function () {
return $.trim($(this).text()) == 0
}).parent("div").remove();
});
答案 1 :(得分:0)
closest()
从DOM树中选择与选择器匹配的第一个元素,而parent()
选择DOM树中另一个元素的父元素的所有元素。
使用.parent()
:
$('#button').click(function(){
$(".img_id:contains(0)").parent("div").remove();
});
答案 2 :(得分:0)
您需要使用parent
删除父级,如下所示:
$(".img_id:contains(0)").parent("div").remove();
closest
获得自我div,因为它最接近。