Как я могу сказать jQuery, чтобы он не всплывал в дереве при использовании Содержимое (строка)? - PullRequest
0 голосов
/ 22 июня 2010

Мне нужно спрятать div, в котором есть определенная строка, с использованием содержит .. но jQuery скрывает все div, которые также являются родителями целевого div!

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

как мне сказать jQuery просто сопоставить div, который фактически содержит эту строку?

Спасибо

<ч /> Edit:

вот внутренний 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>

Ответы [ 2 ]

3 голосов
/ 22 июня 2010

Предполагая, что у div нет div-ов, которые являются родственными элементами для текста, вы можете сделать это:

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

Это использует :not(), чтобы получить противоположность :has(), чтобы выбрать только элементы <div>, которые не содержат других элементов <div>, исключая родителей.Также я использую .hide() здесь как более простой display: none;, на случай, если вы захотите показать его позже.

0 голосов
/ 22 июня 2010

Глядя на ваш HTML, это будет более подходящим:

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