HTML 元素的 textContent 和值不必要地不同

问题描述 投票:0回答:1

假设有一个文本内容为

Clark, Theodore  S.
的元素。请注意“Theodore”后面的双空格。假设您将此元素作为 HTML 选项,如下所示:
<option>Clark, Theodore  S.</option>
。如果您尝试提取其文本内容,您将正确获得结果
Clark, Theodore  S.
。但是,如果您尝试获取该选项的
value
属性,您将获得
Clark, Theodore S.

根据 MDN 的文档,格式化 DOM 时常常会忽略空格。但是,让

textContent
属性返回修剪后的值而
value
属性返回精确值不是合乎逻辑的吗?据我所知,当你获取输入元素的
value
时,不会执行任何修剪操作,那么为什么要在这里进行修剪呢?

当预期

value
属性能够最准确地反映实际值集时,为什么要以任何方式修改它?这是 JavaScript 中的错误还是明确有意为之?

javascript html w3c
1个回答
0
投票

HTMLOptionElement

textContent 不是其值本身。它的值是/应该由它的 value 属性 定义。如果不存在 value 属性,则采用文本内容,显然在这种情况下遵循 HTMLElement 的常规规则。

来自上面的 mdn 链接:

[Option.value] 表示 HTMLOptionElement 值的字符串,即等效 的 value 属性。如果未指定,则使用文本值作为值,例如表单提交到服务器时关联元素的值。

© www.soinside.com 2019 - 2024. All rights reserved.