javascript - input 元素中 textContent 的用途是什么?

标签 javascript html dom

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

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

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

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

当前行为背后是否有任何原因?

最佳答案

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/

相关文章:

html - IE渲染背景:transparent as a hole?

html - 垂直对齐不适用于 flex 元素

javascript - 当组件在 react 中卸载时,我应该删除对 DOM 元素的引用吗?

javascript - 仅在ajax请求成功后才迭代foreach循环数组

javascript - 等待 AJAX 响应后加载图像

javascript - 抛出新错误时,Jest 失败并显示无用的错误消息

java - Java 的 DOM 解析器打印相同的值

javascript - 如何使 Material-UI 单选按钮 float : left

html - 样式不会被图像覆盖

javascript - 为元素内的复选框创建标签