radio
各行に があるテーブルがあります。を持つのクラスが必要selected
です。tr
selected radio
だから私はこれをしました:
$(":radio[name='grp']").on("change", function() {
$("#tbl1").find("tr.selected, tr:has(:radio:checked)").toggleClass("selected");
});
radios
下から上にチェックを開始すると、うまく機能します。ただし、上から下に開始すると、一度は機能し、その後は一度も機能しません。
関数がなくてもfind
、コードがうまく機能することを特定できました。
$(":radio[name='grp2']").on("change", function() {
$("#tbl2 tr.selected, #tbl2 tr:has(:radio:checked)").toggleClass("selected");
});
ここで何が起こっているのですか?
更新:問題はメソッドにあることにも注意しました。これは、find
機能すると常に長さ 2 の jQuery オブジェクトが返されるためです。機能しない場合、長さ 1 が返されます。ただし、分離された文の2 つfind
の場合、どちらも長さ 1 を返し、異なる要素から取得されます。