在 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:
也许只是我个人的看法,但我看不出这里有任何逻辑一致性。在将文本内容设置为输入时出现类型错误不是很好吗?
目前的行为背后有什么原因吗?
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(使用前将#替换为@)