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

时间:2016-05-10 15:39:54

标签: javascript html dom

在DOM中提供了一个输入元素,它具有textContent属性以及value。众所周知,输入的值是文本框中显示的,并且此元素不能包含任何子元素,即<input>something</input>仍然提供空输入,后跟兄弟文本节点,而结束标记完全忽略。但是当我们将一个值设置为此输入的textContent时,它在某种程度上可以在往返过程中存活:

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

此外,在设置属性后,输入在检查器中显示为具有子元素: Safari inspector screenshot after setting the text content

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

目前的行为背后有任何理由吗?

1 个答案:

答案 0 :(得分:2)

DOM不是HTML,但是符合XML information set翻译<input>something</input>到输入元素后跟文本节点的树结构的API是HTML解析器的行为,而不是行为的DOM。

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