在DOM中提供了一个输入元素,它具有textContent
属性以及value
。众所周知,输入的值是文本框中显示的,并且此元素不能包含任何子元素,即<input>something</input>
仍然提供空输入,后跟兄弟文本节点,而结束标记完全忽略。但是当我们将一个值设置为此输入的textContent
时,它在某种程度上可以在往返过程中存活:
input.textContent = 'something'
console.log(input.textContent) // this works
也许只是我,但我没有看到任何逻辑上的一致性。将文本内容设置为输入时出现类型错误不是很好吗?
目前的行为背后有任何理由吗?
答案 0 :(得分:2)
DOM不是HTML,但是符合XML information set翻译<input>something</input>
到输入元素后跟文本节点的树结构的API是HTML解析器的行为,而不是行为的DOM。
事实上,如果您使用XHTML,作为application/xhtml+xml
,<input>something</input>
将成为带有文本节点子元素的输入元素,与使用.textContent
相同。所以.textContent
按照它的方式工作是完全正常的。