Javascript 如果包含文本,请选择元素

Javascript 如果包含文本,请选择元素,javascript,jquery,Javascript,Jquery,我不能让这一个工作,我找不到任何类似的问题,做同样的我想要的 我有一个表,其中的行如下: <div class="gui-table"> <table> <tr> <td></td> <td></td> <td></td>

我不能让这一个工作,我找不到任何类似的问题,做同样的我想要的

我有一个表,其中的行如下:

<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... 
    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');
            });
        });
    }
这不行!有人知道这有什么问题吗?

只要做:

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

小提琴手:

假设我正确理解了你的问题,那么以下几点就可以了:

$('.gui表p.customfields:contains(“Size”)).parent().next().hide()
td{边框:1px纯黑;}

展示

大小

隐藏的
如果您只想隐藏第三列,当第二列中有“size”一词时,您可以这样做:

$('.gui-table td:nth-child(2):contains("Size")').next().css('visibility', 'hidden');
下面是一个JSFIDLE:

解释:

选择类名为
.gui table
的所有元素,选择所有第二个
td
s的
td:n子级(2)
,使用
:contains(“大小”)
过滤它们。现在您有了所有第二个
td
s,其中包含单词“Size”和
。next()
您得到了以下单元格(第三个),并使用
.css('visibility','hidden')
将其隐藏


这会有用的。

我仔细研究了一下,想出了这个,应该能让你重新开始。基本功能与您开始时非常相似,但修改如下:

<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... 
    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()传递的是段落元素,而不是单元格元素。因此,我遍历parents()链,直到找到行并隐藏第三个孩子。你也许可以在没有内部代码的情况下编写这些代码,但我太懒了,不会那么复杂

“可见性”拼写错误(两个l)。另外,您说要隐藏行的第三个单元格,但要隐藏的$(this)将表示行元素。