我正在编写一些代码,<input type=radio />
当其中任何一个发生更改时,这些代码会突出显示“无线电组”中的所有内容。
在收音机“更改”事件的事件处理程序中,我使用以下代码查找所有其他类似的收音机:
radioHandler: function (event) {
var element = $(this);
var name = element.attr("name");
// Find all radios in the same group:
element.closest("form")
.find("input[type=radio][name='" + name + "']")
.each(function(){
... etc ...
});
},
如果收音机确实包含在表单中,这将非常有效。但是,如果表格之外
也有收音机,我也希望它能够工作。
例如,假设所有收音机都使用相同name
的 ,以下表示 3 个不同的收音机组(并且所有浏览器都以这种方式运行):
o Radio A | o Radio B | o Radio C (Group - no form)
<form> o Radio D | o Radio E | o Radio F </form> (Group - form 1)
<form> o Radio G | o Radio H | o Radio I </form> (Group - form 2)
如果我有一个元素,那么仅找到属于其“组”的收音机的最佳方法是什么?
此外,对于奖励积分......如果该元素不是当前文档的一部分 - 即,它包含在另一个“分离”上下文中怎么办?当前的解决方案工作正常(因为element.closest(...)
使用元素的上下文)。