繁体   English   中英

选择元素是否包含文本

[英]Select element if contains text

我无法使这一功能正常运行,也找不到任何可以满足我想要的类似问题。

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

<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... 

我想检查所有第二个单元格中是否都包含文本 “ size”! 如果是这样,则隐藏第三个td

所以我认为可行的是:

 $('.gui-table tr').each(function(){

  if ($('td:nth-child(2) .customfields:contains("Size")').length > 0) {
     $(this).css('visibillity', 'hidden');
   }
 });

这行不通! 有人看到这有什么问题吗?

做就是了:

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

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

假设我正确理解了您的问题,请执行以下操作:

 $('.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> 

这将隐藏任何包含带有文本大小的ap标记的表单元格之后的下一个表单元格。

它通过在gui表中找到包含大小的P标签来工作- $('.gui-table p.customfields:contains("Size")')

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

最后, .next().hide()选择下一个表格单元格并将其隐藏。

我对此进行了探讨 ,并提出了这个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()链,直到找到该行并隐藏了第三个孩子。 您可能可以在没有内部代码的情况下进行编码,但是我太懒了以至于没有那么复杂!

如果您只想隐藏第三列,那么当第二列中有“大小”一词时,您可以采用以下方式:

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

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

说明:

选择所有具有类名称.gui-table元素,使用td:nth-child(2)选择所有第二个td ,使用:contains("Size")过滤它们。 现在,所有第二个td带有单词“ Size”和.next()您将得到以下单元格(第三个),然后使用.css('visibility', 'hidden')

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

这是可行的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM