0

各行の列が次の<select>ような同じオプションで構成されているテーブルがあります。

<tr>
....
<td>..</td>
<td>
    <select id="gender">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>
</td>
</tr>
<tr>
....
<td>..</td>
<td>
    <select id="gender">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>
</td>
</tr>
<tr>
....
<td>..</td>
<td>
    <select id="gender">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>
</td>
</tr>

現在2行目で作業しているとしましょう。3行目のオプションを無効にするにはどうすればよいですか?

4

1 に答える 1

1
$(this).closest("tr").next().find("select").prop("disabled", true);

closest("selector")このメソッドを使用して、親までトラバースし(を使用することもできますparents("selector"))、を使用して次の親にジャンプし、next()までトラバースして、 。find("selector")を使用してフォーム要素を編集しprop()ます。

もちろん、この行をある種のイベントハンドラー、おそらくchange前のselect要素によって発生したイベントに配置します。ただし、それを行う前に、を倍増していないことを確認する必要がありますid...そうしないと、jQueryがうまく機能しません。

于 2012-07-24T04:09:26.993 に答える