jquery - 查找多个选择器不一致的奇怪行为

标签 jquery radio-button

我有一个表格,每行都有一个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]效果很好

http://jsfiddle.net/kLk6J/

关于jquery - 查找多个选择器不一致的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976409/

相关文章:

jquery - 更改移动布局上的日历位置

javascript - 如何将div 添加到fancybox-3 自定义模板?

javascript - 同一页面上有多个 js 进度条?

css - 使用 css 检查单选按钮时影响 div

javascript - 如果选择单选按钮 Show Div - 8 Radio Buttons/8 Divs - 这可以简化吗?

javascript - 登录后 Facebook api 不会重新加载

javascript - DOM Mutation Observer Callback 和 Child class for changed events

javascript - 如何更改单选按钮的范围文本

css - 如何更改 JavaFx RadioButton 中的点?

android - getCheckedradiobutton 总是返回 -1