我有<table>
有行,第一行是当然标题,其他10行是非标题行。我希望得到前3个非标题行(只有td
孩子而不是th
)
<table>
<tr>
<th> Header 1 </th>
<th> Header 2 </th>
<th> Header 3 </th>
</tr>
<tr>
<td> Row 1 Cell 1 </td>
<td> Row 1 Cell 2 </td>
<td> Row 1 Cell 3 </td>
</tr>
<tr>
<td> Row 2 Cell 1 </td>
<td> Row 2 Cell 2 </td>
<td> Row 2 Cell 3 </td>
</tr>
</table>
我正在使用JQuery
var sideNotification = jq(jq.parseXML(response.d))
.find('tr').has("td")
.each(function (index) {
if (index < 3) {
return {
leadNo: $(this).find("td:eq(0)").text(),
product: $(this).find("td:eq(1)").text(),
status: $(this).find("td:eq(2)").text()
}
}
});
console.log(sideNotification.length);
但它仍然以10计数。怎么解决?
答案 0 :(得分:2)
$('tr:has(td):lt(3)').css('color', 'red');
^^^^^^^^^^^^^^^
^^ tr --> Select all tr elements
^^^^^^^ :has(td) --> Select all tr elements having `td` as descendent
^^^^^ :lt(3) --> Get first three elements
$('tr:has(td):lt(3)').css('color', 'red');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
</tr>
<tr>
<td>Row 1 Cell 1</td>
<td>Row 1 Cell 2</td>
<td>Row 1 Cell 3</td>
</tr>
<tr>
<td>Row 2 Cell 1</td>
<td>Row 2 Cell 2</td>
<td>Row 2 Cell 3</td>
</tr>
<tr>
<td>Row 1 Cell 1</td>
<td>Row 1 Cell 2</td>
<td>Row 1 Cell 3</td>
</tr>
<tr>
<td>Row 2 Cell 1</td>
<td>Row 2 Cell 2</td>
<td>Row 2 Cell 3</td>
</tr>
<tr>
<td>Row 1 Cell 1</td>
<td>Row 1 Cell 2</td>
<td>Row 1 Cell 3</td>
</tr>
<tr>
<td>Row 2 Cell 1</td>
<td>Row 2 Cell 2</td>
<td>Row 2 Cell 3</td>
</tr>
</table>
&#13;
答案 1 :(得分:0)
你可以这样使用
$("tr:lt(4)").filter(function () {
return $(this).find("td").length > 0;
})
:lt(4)
将获取索引小于4的所有tr元素。td
的计数来消除标题。