Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 最佳实践:访问单选按钮组_Javascript_Forms_Dom_Getelementsbyname - Fatal编程技术网

Javascript 最佳实践:访问单选按钮组

Javascript 最佳实践:访问单选按钮组,javascript,forms,dom,getelementsbyname,Javascript,Forms,Dom,Getelementsbyname,寻找最好的、符合标准的、跨浏览器兼容的、转发兼容的方式来访问DOM中的一组单选按钮(这与我最近的另一篇文章密切相关…),而不使用任何外部库 <input type="radio" value="1" name="myRadios" />One<br /> <input type="radio" value="2" name="myRadios" />Two<br /> One 两个 我在getElementsByName()上读到了相互矛盾的信

寻找最好的、符合标准的、跨浏览器兼容的、转发兼容的方式来访问DOM中的一组单选按钮(这与我最近的另一篇文章密切相关…),而不使用任何外部库

<input type="radio" value="1" name="myRadios" />One<br />
<input type="radio" value="2" name="myRadios" />Two<br />
One
两个

我在getElementsByName()上读到了相互矛盾的信息,这似乎是正确的方法,但我不清楚这是否是一个符合标准、向前兼容的解决方案。也许有更好的方法?

我对这个解决方案不太满意,但我最终在Gecko DOM文档中找到了这个方法

name获取或设置DOM对象的name属性,它仅适用于以下元素:锚定、小程序、表单、框架、iframe、图像、输入、映射、元、对象、选项、参数、选择和文本区域

详情如下:

因此,我认为这是一种符合标准的方式(尽管可能并不存在最佳实践…)


我认为未来最好的事情是:

form.elements.myRadios
vs

原因是,根据最新的
元素.someName
将返回
RadioNodeList
的对象(如果多个元素具有相同的名称),该对象包含一个
属性,指示选中项的值

另一方面,
form.myradios
将返回一个
NodeList
的对象,它只是一个有序的项目集合,没有任何
属性

传统上,在收音机和复选框中查找选中的项目是一项非常痛苦的工作


但是,我不确定如何访问复选框的所有选中元素。在规范中找不到。希望没有遗漏。

+1为了具体起见,我喜欢在问题中这样做。顺便说一句:那些收音机都渴望一个。:)是的,我知道,我只是简单…
document.forms.elements.myradio
使用
form.elements
而不是
form
document.getElementById('myForm').elements.myRadios
form.elements.myRadios
form.myRadios