通过jquery获取prev输入元素

时间:2012-09-04 16:57:18

标签: jquery traversal

我的代码

<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,但不起作用: - (

谢谢: - )

1 个答案:

答案 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选择器。