首页 > 文章列表 > 为什么使用 `innerHTML` 获取 `` 元素的值会失效?

为什么使用 `innerHTML` 获取 `` 元素的值会失效?

177 2024-11-13

为什么使用 `innerHTML` 获取 `` 元素的值会失效?

JavaScript中textarea元素的值获取方法探讨

本文讨论了如何获取<textarea> 元素的值。在提供的代码示例中,方法二(text.innerHTML)未能如预期般生效,输出为空值。

内联HTML与DOM对象的value属性

JavaScript 文档约定,表单控件类元素的值可以通过 .value 属性获取。.value 适用于以下控件:<input>, <select>, <option>, <textarea>。

innerHTML 与 Shadow DOM

<textarea> 元素在 WebKit 中被实现为 Web Components 组件。这些组件使用 Shadow DOM,该技术不使用标准 HTML DOM 结构。因此,对 Shadow DOM 中的元素使用 .innerHTML 将无效,因为这些元素与标准 DOM 分离。

相反,.value 直接修改 Shadow DOM 中的值。这就是为什么在提供的代码示例中,方法二未能获取 <textarea> 元素的值。

结论

获取 <textarea> 元素的值的正确方法是使用 .value 属性。这适用于所有主要的浏览器,并符合 JavaScript 文档的标准。

来源:1731400562