如果包含整数,则jQuery删除父div

时间:2014-02-23 06:11:55

标签: jquery dom

我有以下情况,我正在尝试使用某个整数找到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?

3 个答案:

答案 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,因为它最接近。

演示:http://jsfiddle.net/a6NJk/658/