我有一个表格,每行都有一个radio
。我想要为 tr
建立一个 selected
类,其中包含 selected radio
。
所以我这样做了:
$(":radio[name='grp']").on("change", function() {
$("#tbl1").find("tr.selected, tr:has(:radio:checked)").toggleClass("selected");
});
当您开始从下到上检查 radio
时,效果很好。然而,如果你从上到下开始,它会工作一次,然后它不会工作一次,依此类推。
我可以在没有 find
函数的情况下隔离该代码,代码效果很好:
$(":radio[name='grp2']").on("change", function() {
$("#tbl2 tr.selected, #tbl2 tr:has(:radio:checked)").toggleClass("selected");
});
Here there is a fiddle for you to test it .
这里发生了什么?
更新:我还注意到问题出在 find
方法上,因为当它工作时,它总是返回一个长度为 2 的 jQuery 对象。不起作用,它返回长度 1。但是,如果我将两个 find
放在单独的句子中,它们都会返回长度 1 并且来自不同的元素。
最佳答案
:radio
已被弃用,如您在此处看到的 http://api.jquery.com/category/deprecated/
您应该使用input[type=radio]
来获取单选按钮
使用input[type=radio]
效果很好
关于jquery - 查找多个选择器不一致的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976409/