2012-02-02 3 views
3

В таблице у меня есть <td> чей HTML либо Правда или Ложные. Если значение False, то скрыть parent.Скрыть родительский элемент, если значение ребенка соответствует определенной строки JQuery

HTML:

<tr> 
    <td class="IsRequired" align="left" valign="middle" style="width:3px;">False</td> 
</tr> 

Запрос:

$('.IsRequired').html("False").parent().hide(); 

Это скрывает все <td>, чей класс "требуется копаться"

Пожалуйста совет.

ответ

4

Попробуйте это:

$("td.IsRequired:contains('False')").parent().hide(); 

Рабочий пример здесь: http://jsfiddle.net/95WLt/2/

+1

Не должно быть '$ (". IsRequired td: contains ('False') ")'? +1 anyhow –

+2

Не совсем, но близко ('td' не является потомком элемента IsRequired). Обновлен мой пример –

+0

oh wow. Ты прав. idk, почему я думал, что '.IsRequired' был родителем. о_О –

2

я думаю, что вы должны сделать

$('.IsRequired').each(function(){ 
      if($(this).html()=="False") 
       $(this).parent().hide() 
      }); 
2

Demo: http://jsfiddle.net/93n42/

$('.IsRequired').filter(function(){ 
    return $(this).html() == "False" 
}).parent().hide(); 

, который должен работать.

+0

Plus 1 для использования фильтра вместо каждого из них, но я думаю, что: содержит псевдо-элемент подход вас победил! – Malk

+0

@ Адам согласен XD –

+1

Почему фильтр предпочтительнее .each? – Bogdan

1

Попробуйте это:

$('.IsRequired').each(function(){ 
    if ($(this).text() == 'False') $(this).parent().hide(); 
}); 
Смежные вопросы