簡體   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