2012-02-02 67 views
3

在表中,我有一个<td>其html或者是。如果值为则隐藏如果子值匹配某个字符串,则隐藏父元素JQuery

HTML:

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

查询:

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

这隐藏了所有它的类是 “IsRequired

请咨询<td>

回答

4
+1

不应该是'$(“。IsRequired td:contains('False')”)'? +1无论如何 – 2012-02-02 00:10:37

+2

不完全但接近('td'不是'IsRequired'元素的后代)。哇,更新了我的例子 – 2012-02-02 00:14:05

+0

。你是对的。 idk为什么我认为'.IsRequired'是父母。 O_O – 2012-02-02 00:18:34

2

我认为你应该做

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

演示:http://jsfiddle.net/93n42/

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

,应该工作。这里

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

工作示例:

+0

加1,使用过滤器,而不是每一个,但我认为:含有伪元素方法你击败! – Malk 2012-02-02 00:10:44

+0

@Adam同意XD – 2012-02-02 00:11:06

+1

为什么过滤器优先于.each? – Bogdan 2012-02-02 00:16:31

1

试试这个:

$('.IsRequired').each(function(){ 
    if ($(this).text() == 'False') $(this).parent().hide(); 
}); 
相关问题