2010-06-21 91 views
0

我需要隱藏一個具有特定字符串的div,使用contains ..但jQuery隱藏了所有目標div的父母的div!如何告訴jQuery在使用contains(string)時不會冒泡樹?

$("div:contains('user_notifications')").css("display","none") 

如何告訴jQuery匹配實際包含該字符串的div?

感謝


編輯:

這裏是一個包含我想匹配字符串內的div ..

<div class="group" style="display: block;"> 

<input type="hidden" value="0" name="user[notification_options[new_reply]]" style="display: block;"> 

<input type="checkbox" value="1" name="user[notification_options[new_reply]]" id="user_notification_options[new_reply]" checked="checked" style="display: block;"> 

Request help from system admin 

</div> 
+0

什麼是您的HTML是什麼樣子? – 2010-06-21 20:34:40

+0

很不好! ...我無法觸摸它..它只是一堆div沒有課程或ID屬性 – Joseph 2010-06-21 20:35:55

+0

你能發佈最內層的div嗎?例如它裏面有一個div,旁邊有這個文字嗎? – 2010-06-21 20:37:06

回答

3

假設DIV不具有的兄弟姐妹的div文字,你可以這樣做:

$("div:contains('user_notifications'):not(:has(div))").hide(); 

這使用:not()得到相反的:has()只選擇<div>元素不包含其他<div>元素,消除父母。另外我在這裏使用.hide()作爲更簡單的display: none;,以防您稍後想要顯示它。

+0

尼克 - 感謝您對我的回答的更正(刪除)。 +1:o) – user113716 2010-06-21 20:41:34

+0

我包含上面的html ..但我認爲這個工程..非常感謝! – Joseph 2010-06-21 20:52:35

+0

我無法讓它工作。 – 2010-06-21 21:06:22

0

通過看你的HTML,這將是更適合:

$("input[name*=notification_options]").parent("div").hide();