输入元素中 textContent 的用途是什么?

2024-01-12

在 DOM 中提供一个输入元素,它确实有一个textContent财产连同value。众所周知,输入的值就是文本框中显示的值,并且该元素不能有任何子元素,即<input>something</input>仍然给出一个空输入,后跟一个同级文本节点,而结束标记被完全忽略。但是当我们给textContent这个输入,它以某种方式在往返过程中幸存下来:

input.textContent = 'something'
console.log(input.textContent)  // this works

Also, after setting the property, the input appear as having child elements in the inspector: Safari inspector screenshot after setting the text content

也许只是我个人的看法,但我看不出这里有任何逻辑一致性。在将文本内容设置为输入时出现类型错误不是很好吗?

目前的行为背后有什么原因吗?


DOM 不是 HTML,而是符合以下规则的树结构 APIXML信息集 https://www.w3.org/TR/xml-infoset/翻译<input>something</input>进入输入元素后跟文本节点是 HTML 解析器的行为,而不是 DOM 的行为。

事实上,如果你使用XHTML,充当application/xhtml+xml, <input>something</input>将成为带有文本节点子节点的输入元素,与使用相同.textContent。所以这是完全正常的.textContent就这样工作。

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

输入元素中 textContent 的用途是什么? 的相关文章