2014-02-23 25 views
-1

我有以下情況,我試圖找到一個特定的整數的div,然後刪除它包含父div如果找到。jQuery刪除父div如果包含整數

<div id="top_container"> 
    <div class="img_id">0</div> 
</div> 

<script> 
$('#button').click(function(){ 
    $(".img_id:contains(0)").closest("div").remove(); 
}); 
</script> 

但由於某些原因,這個只刪除DIV與img_id類,但不排除它的父格。我的問題是,如何找到正確的整數值後刪除它的父div?

+4

當你的問題的答案在你的問題標題中時,你難道不討厭它嗎? :) – Barmar

回答

1

closest()將返回自己或祖先樹最接近的元素,這樣你就可以在這種情況下

使用.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(); 
}); 
這將返回值的真
+0

這似乎刪除0,但如果我將值設置爲10,該過濾器似乎並沒有刪除與值10的div – user2028856

+0

downvoted誰需要說明爲什麼! – mplungjan

+0

@mplungjan因爲我們都知道這不是如何在這裏工作...所以我們可以忽略它 –

0

closest()從DOM樹中選擇與選擇器匹配的第一個元素,而parent() s選擇DOM樹中另一個元素的父元素的所有元素。

使用.parent()

$('#button').click(function(){ 
    $(".img_id:contains(0)").parent("div").remove(); 
}); 
0

你需要使用parent這樣刪除父:

$(".img_id:contains(0)").parent("div").remove(); 

closest獲得自我格,因爲它是最最接近的一次。

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