在 DOM 中提供一个输入元素,它确实有一个 textContent
属性(property)连同value
.众所周知,输入的值就是文本框中显示的值,这个元素不能有任何子元素,即<input>something</input>
。仍然给出一个空输入,后跟一个同级文本节点,而结束标记被完全忽略。但是当我们将值设置为 textContent
时这个输入,它以某种方式在往返过程中幸存下来:
input.textContent = 'something'
console.log(input.textContent) // this works
也许这只是我,但我在这里看不到任何逻辑上的一致性。在将文本内容设置为输入时出现类型错误不是很好吗?
当前行为背后是否有任何原因?
最佳答案
DOM 不是 HTML,而是符合 XML information set 的树结构 API。翻译 <input>something</input>
输入元素后跟文本节点是 HTML 解析器的行为,而不是 DOM 的行为。
事实上,如果你使用XHTML,担任application/xhtml+xml
, <input>something</input>
将成为带有文本节点子节点的输入元素,与使用 .textContent
相同.所以 .textContent
是完全正常的按照它的方式工作。
关于javascript - input 元素中 textContent 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37143171/