我的代码
<table id="mytable">
<tr>
<td>Text 5</td>
<td>Other text 5</td>
<td><input name="name5" value=""></td>
<td><input type="checkbox" value="5" name="records"></td>
</tr>
<tr>
<td>Text 7</td>
<td>Other text 7</td>
<td><input name="name7" value=""></td>
<td><input type="checkbox" value="7" name="records"></td>
</tr>
<tr>
<td>Text 13</td>
<td>Other text 13</td>
<td><input name="name13" value=""></td>
<td><input type="checkbox" value="13" name="records"></td>
</tr>
</table>
使用
获取中间输入复选框$('#mytable input[type=checkbox][name=records][value=7]')
好: - )
现在,我如何获得prev input()和next()输入?
我试试
$('#mytable input[type=checkbox][name=records][value=2]').prev('input[type=checkbox]')
对于prev,但不起作用: - (
谢谢: - )
答案 0 :(得分:2)
假设您在checkbox
中有对该中间复选框的引用,并且还假设每个tr
元素只有一个复选框后代:
//Previous checkbox:
checkbox.closest("tr").prev().find(":checkbox");
//Next checkbox:
checkbox.closest("tr").next().find(":checkbox");
使用.closest()
获取祖先tr
元素,然后使用.prev()
或.next()
选择上一个或后一个tr
,然后找到任何元素复选框的后代。
还要注意使用:checkbox
选择器,它基本上是您当前使用的属性选择器的快捷方式。您可以使用其中任何一个,但属性选择器可能更快一些,因为它是一个原生的CSS选择器。