0

私のコード

<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]')

良い :-)

さて、前の入力 () と次の () 入力を取得するにはどうすればよいですか?

私は試します

$('#mytable input[type=checkbox][name=records][value=2]').prev('input[type=checkbox]')

前の場合、動作しません:-(

ありがとう :-)

4

1 に答える 1

2

の中央のチェックボックスへの参照があると仮定し、各要素checkboxのチェックボックスの子孫が 1 つしかないと仮定します。tr

//Previous checkbox:
checkbox.closest("tr").prev().find(":checkbox");

//Next checkbox:
checkbox.closest("tr").next().find(":checkbox");

これは で祖先tr要素を取得し、 orを.closest()使用して前または次の を選択し、そのチェックボックスの子孫を見つけます。.prev().next()tr

また、セレクターの使用にも注意してください:checkbox。これは基本的に、現在使用している属性セレクターへのショートカットです。どちらも使用できますが、属性セレクターはネイティブの CSS セレクターであるため、おそらく少し高速です。

于 2012-09-04T16:59:49.697 に答える