[英]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.