选择元素如果包含文本

时间:2015-10-12 12:47:22

标签: javascript jquery

我无法让这个工作,我无法找到任何类似的问题。

我有一个像这样的行的表:

--set

我想检查所有第二个单元格是否具有文本&#34;尺寸&#34;在里面!如果是,则隐藏第三个<div class="gui-table"> <table> <tr> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td><p class="customfields">Size</p></td> <td></td> </tr> //etc...

所以我认为可行的是:

td

这不起作用!有人看到这有什么问题吗?

5 个答案:

答案 0 :(得分:1)

只是做:

$('.gui-table .customfields:contains("Size")').css('visibility', 'hidden');

小提琴:http://jsfiddle.net/cfmrngcc/2/

答案 1 :(得分:1)

假设我正确理解你的问题,下面应该这样做:

$('.gui-table p.customfields:contains("Size")').parent().next().hide();
td { border: 1px solid black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gui-table">
  <table>
    <tr>
      <td></td>
      <td></td>
      <td>Shown</td>
    </tr>
    <tr>
      <td></td>
      <td><p class="customfields">Size</p></td>
      <td>Hidden</td>
    </tr>
  </table>
  </div>

这将隐藏包含带有文本Size的p标签的任何表格单元格后的下一个表格单元格。

通过在gui-table中找到P标记containing大小来工作 - $('.gui-table p.customfields:contains("Size")')

然后使用.parent()选择它的父表格单元格。

最后.next().hide()选择下一个表格并隐藏它。

答案 2 :(得分:1)

我对此嗤之以鼻,想出了JSFiddle,这会让你再次前行。基本功能与您开始时非常相似,但修改如下:

    function doItNow(e)
    {
        $('.gui-table tr').each(function ()
        {
            $('td:nth-child(2) .customfields:contains("Size")').each(function ()
            {
                $(this).parents('tr').children('td:nth-child(3)').css('visibility', 'hidden');
            });
        });
    }

请注意,内部each()传递的是段落元素而不是单元格元素。所以我遍历了parent()链,直到我找到了行并隐藏了第3个孩子。你可能能够在没有内部的情况下对其进行编码,但是我太懒了,不能那么复杂!

答案 3 :(得分:0)

如果您只想隐藏第三列,当第二列中有“大小”字样时,您可以这样做:

$('.gui-table td:nth-child(2):contains("Size")').next().css('visibility', 'hidden');

这是一个jsfiddle: http://jsfiddle.net/0qczvak5/

解释:

选择类名为.gui-table的所有元素,选择td的所有第二个td:nth-child(2),并使用:contains("Size")过滤它们。现在,您的所有第二个td都带有“大小”字样,而.next()则获得以下单元格(第三个),然后使用.css('visibility', 'hidden')隐藏它。

答案 4 :(得分:0)

$(".gui-table tr td:nth-child(2)").each(
    function (index,tag){  
        if ($(tag).find("p").text() == "Size") 
        $(tag).css('visibility', 'hidden');
   }
 )

这样可行。