嗨,我希望像这样循环一些tr。
<tr>
<td> <input type="radio" id="r11" value="a" name="r1_selectedobjects" /> </td>
<td><input type="radio" id="r12" value="b" name="r1_selectedobjects" /> <td>
</tr>
<tr>
<td><input type="radio" id="r21" value="a" name="r2_selectedobjects" /></td>
<input type="radio" id="r22" value="b" name="r2_selectedobjects" /></td>
</tr>
<td><input type="radio" id="r31" value="a" name="r3_selectedobjects" /></td>
<td><input type="radio" id="r32" value="b" name="r3_selectedobjects" /></td>
<tr>
<tr>
<td><input type="submit" id="matbutton" data-inline="true" value="Submit" onclick="return CheckMatrixRadio(this);" /></td>
</tr>
我可以通过$('tr').each(function(){});
我想跳过3 rd tr
这一个
</tr>
<td><input type="radio" id="r31" value="a" name="r3_selectedobjects" /></td>
<td><input type="radio" id="r32" value="b" name="r3_selectedobjects" /></td>
<tr>
如何做到这一点。认为我不知道任何calss或id名称,只有我知道的是我的tr的索引,在这种情况下,3
如何在我的tr
循环中跳过each
。请帮助...........
答案 0 :(得分:3)
each
回调会收到一个从零开始的索引,告诉您正在查看哪个匹配的项目,所以:
$('tr').each(function(index){
// If not the third one...
if (index !== 2) {
// ...do something
}
});
如果出于任何原因你不想使用each
(你在问题中提到它,但只是覆盖基础),而是想要创建一个包含除第三行之外的所有行的jQuery实例,我知道的最有效的方法是:
var rows = $('tr');
rows = rows.not(rows[2]);
...通过not
从匹配的集合中删除第三行。对于涉及:not
和:eq
的选择器,您也可以实现相同的目标:
$('tr:not(:eq(2))')
...但是你要求jQuery处理选择器而不是允许它将选择器传递给浏览器的querySelectorAll
实现(如果有的话)。 *
(旁注:如果页面上的任何位置都有不相关的tr
,您可能需要使选择器更具体地针对您正在查看的行组。)
* PiTheNumber在his answer中指出$('tr:not(:nth-child(3))')
也应该这样做。这很有用,因为它的优点是浏览器本身可以处理:not
和:nth-child
。请注意:nth-child
使用基于1的索引,并且非常与:eq
不同 - 它会检查哪个子元素是其容器,而不是它是否是第n个匹配的元素。应该使用包含tr
元素的表格,但它们都在同一个tbody
中。
答案 1 :(得分:1)
您可以使用:nth-child()选择器
跳过第三个tr$('tr:not(:nth-child(3))').each(function(index, value) {
});
答案 2 :(得分:0)
使用Index,它是循环当前迭代的基于0的索引。
e.g。
$('tr').each(function(index){
if(index !== 2) {
// Do stuff here for rows that aren't the 3rd one
}
});
有关详细信息,请参阅http://api.jquery.com/each/
答案 3 :(得分:0)
首先看看你的标记!它有一个很大的错误。关闭<tr>
代码。我为你纠正了
<tr>
<td> <input type="radio" id="r11" value="a" name="r1_selectedobjects" /> </td>
<td><input type="radio" id="r12" value="b" name="r1_selectedobjects" /> <td>
</tr>
<tr>
<td><input type="radio" id="r21" value="a" name="r2_selectedobjects" /></td>
<input type="radio" id="r22" value="b" name="r2_selectedobjects" /></td>
</tr>
<tr>
<td><input type="radio" id="r31" value="a" name="r3_selectedobjects" /></td>
<td><input type="radio" id="r32" value="b" name="r3_selectedobjects" /></td>
</tr>
<tr>
<td><input type="submit" id="matbutton" data-inline="true" value="Submit" onclick="return CheckMatrixRadio(this);" /></td>
</tr>
然后你可以在jQuery中排除给定的元素:
$('tr:not(:nth-child(3)').each(function(){
// function
});
答案 4 :(得分:0)
$('tr').not(':nth-child(3)')
会给你结果。