簡體   English   中英

jQuery-如果在表tr中有4 td做某事

[英]jQuery - if in table tr there is 4 td do something

我正在嘗試從內部小於4 td的 中刪除所有tr

因此,例如,在此表中,我希望第二個tr消失:

的HTML

<table>
  <tbdy>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
    </tr>
  </tbody>
</table>

我正在嘗試這樣的事情

jQuery的

if ($('table tbody tr td').length >= 4) {
  //4 i ok so do nothing
} else {
  $(this).parent("tr").remove();
}

但是我對此一無所知。 有什么幫助嗎?

將jQuery :has()選擇器與:not():nth-child()偽類選擇器一起使用。

 $('tr:not(:has(:nth-child(4)))').remove() 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </tbody> </table> 


或者,使用filter()方法過濾掉僅包含td小於4的元素並刪除。

 $('tr').filter(function() { return $(this).children('td').length < 4; }).remove() 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </tbody> </table> 

這應該工作:

$('table tbody tr').each(function() {
    var $tr = $(this);
    if ($tr.find('> td').length < 4) {
        $tr.remove();
    }
});

您的結構應為:

 <table>
  <tbody>
    <tr>

您可以選擇:

$('table tbody tr')

要獲得少於4列的所有tr,您應該遍歷它們。

您的最終代碼應為:

$('table tbody tr').each(function() {
    var row = $(this);
    if (row.find('td').length < 4) {
        row.remove();
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM