寻找最佳,符合标准,跨浏览器兼容,转发兼容的方式来访问DOM中的一组单选按钮(这与我最近的其他帖子密切相关......),不使用任何外部库。
<input type="radio" value="1" name="myRadios" />One<br />
<input type="radio" value="2" name="myRadios" />Two<br />
我已经阅读了关于getElementsByName()的冲突信息,这似乎是正确的方法,但我不清楚这是否是符合标准的前向兼容解决方案。也许有更好的方法?
答案 0 :(得分:2)
我对这个解决方案并不满意,但我最终在Gecko DOM文档中对此进行了跟踪。
name获取或设置DOM对象的name属性,它仅适用于以下元素:anchor,applet,form,frame,iframe,image,input,map,meta,object,option,param,选择和textarea。
HTMLElement.name = string;
var elName = HTMLElement.name;
var fControl = HTMLFormElement.elementName;
var controlCollection = HTMLFormElement.elements.elementName;
更多信息:https://developer.mozilla.org/en/DOM/element.name
所以我认为这是符合标准的处理方式(尽管最佳实践可能并不存在......)
document.getElementById('myForm').elements.myRadios
答案 1 :(得分:0)
我认为最好的事情是:
form.elements.myRadios
vs
form.myRadios
原因是根据最新的spec,elements.someName
将返回包含RadioNodeList
属性的value
对象(如果多个元素具有相同名称)指示已检查项目的值。
form.myradios
将返回NodeList
的对象,该对象只是一个有序的项集合,并且没有任何value
属性。
在收音机和复选框中查找选中的项目传统上是一项非常痛苦的练习。
但是,我不确定如何访问所有选中元素的复选框。在规范中找不到。希望不缺。