select 选项当前值存储在哪里?

Where is the select option current value stored?

一个 <select> 元素看起来像这样:

<select id="ok">
    <option value="one">First</option>
    <option value="two" selected>Second</option>
</select>

最初,显示 Second 文本值,因为存在 selected 属性。

如果我手动更改它(使用鼠标单击),它会在 UI 中显示新选择的值,但 HTML 中的 <select> 保持不变:

<select id="ok">
    <option value="one">First</option>
    <option value="two" selected>Second</option>
</select>

我可以得到当前的select值:

document.getElementById('ok').value

或当前 selected 索引:

document.getElementById('ok').selectedIndex

通过JavaScript(或jQuery),但我不知道这些值是从哪里来的。

它们是存储在 DOM 还是其他地方?
JavaScript 如何知道 UI 中的当前值是什么?

Is it stored in DOM?

是的,它存储在DOM。

每当检测到更改事件时,DOM 就会更新,更新后的值将存储在 value 对象中。

当您使用 document.getElementById("ok").value 时,您可以访问 JavaScript 中的最新选择。

您可以在以下位置查看:

Firefox 检查器视图

  1. 显示DOM属性

  2. 过滤 value:

Chrome 开发工具

  1. Select 元素 > 属性

  2. 展开 select 并使用垂直滚动转到 value: