使用“e.value”与“e.options[e.selectedIndex].value”选择元素的值

2023-12-04

给定 HTML:

<select id="mySelect">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
</select>

和 JavaScript:

var e = document.getElementById('mySelect');

要获取我可以使用的选择值e.value and e.options[e.selectedIndex].value.

我知道e.options[e.selectedIndex].value会给我选定的值(1,2 或 3)并且e.options[e.selectedIndex].text会给我 test1、test2、test3,具体取决于选择的内容。

只用就可以吗e.value?这是旧浏览器中的问题吗?
哪个更正确:e.value vs e.options[e.selectedIndex].value?

jsFiddle


The HTMLSelectElement接口包括value属性至少自 1998 年文档对象模型 (DOM) 1 级规范开始。

然而,就像它所解释的那样这个 w3c 邮件列表,问题是 HTML4.01 规范含糊不清:

确实,HTML4.01 没有显式指定 value 属性 对于 SELECT,但它似乎确实是隐含的:

  • “菜单”是一种控件类型。 (HTML4.01 17.2.1)

  • “每个控件都有一个初始值和一个当前值,两者都有 这是字符串”(HTML4.01 17.2)

  • And SELECT可能有一个onchange隐含值的属性。 (HTML4.01 17.6)

但没有提及该值代表什么,也没有提及 初始值或默认值可能是。

然而,在 IE5 和 Mozilla 中检查,值SELECT确实 返回当前选择的值对应的字符串OPTION.

(...) 如果 HTML4.01 更加明确的话,可能不会成为问题。

这在以下定义中得到了修复。

你可以在这里看到它的定义:

  • HTMLSelectElement's value in DOM 级别 1,W3C 建议,1998 年 10 月 1 日

    当前表单控件值。

  • HTMLSelectElement's value in DOM 级别 2,W3C 建议,2003 年 1 月 9 日

    当前表单控件值(即当前选定选项的值),如果选择了多个选项,则这是第一个选定选项的值。

  • HTMLSelectElement's valueHTML5、W3C 候选推荐

    The valueIDL 属性在获取时必须返回value的 第一的option中的元素选项列表 in 树序有它的选择性设置为 true(如果有)。如果没有,那么一定有 返回空字符串。

所以我认为使用是安全的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“e.value”与“e.options[e.selectedIndex].value”选择元素的值 的相关文章

随机推荐