如何获取元素的文本节点?

阅读时长 2 分钟读完

在前端开发中,我们经常需要获取 HTML 元素的文本内容。这些文本内容可能包括用户输入的表单数据、动态生成的文本或者是页面上已有的静态内容等。在获取元素的文本节点时,我们可以使用多种方式来实现。

使用 innerHTML 属性

innerHTML 属性可以获取到 HTML 元素的所有子元素和文本节点,它返回的结果是一个字符串。通过对这个字符串进行解析,就可以获取到文本节点的内容。

在上面的代码中,我们首先使用 document.querySelector() 方法获取了一个元素,并将其赋值给了变量 element。接下来,我们使用 innerHTML 属性获取该元素的所有内容,并使用正则表达式将所有标签都去除,只保留文本内容。最后,我们将处理后的文本内容打印出来。

但是,使用 innerHTML 的弊端是它会替换掉原始 HTML 标记,并创建新的 DOM 节点。如果需要一次性获取多个元素的文本节点,那么这种方法会对性能产生一定的影响。

使用 textContent 属性

textContent 属性可以获取到 HTML 元素的文本内容,而不包含任何 HTML 标记。通过使用这个属性,我们可以更加方便地获取元素的文本节点。

在上面的代码中,我们使用 document.querySelector() 方法获取了一个元素,并将其赋值给了变量 element。接下来,我们使用 textContent 属性获取该元素的文本内容,并将其赋值给了变量 text。最后,我们打印出了这个文本内容。

innerHTML 不同,textContent 只会获取到文本内容,并不会对 HTML 标记进行解析和替换。因此,如果我们只需要获取元素的文本节点,那么使用 textContent 是更加高效和安全的选择。

总结

获取元素的文本节点是前端开发中常见的需求。我们可以使用 innerHTML 属性或者 textContent 属性来实现这个功能。如果只需要获取文本节点,那么推荐使用 textContent 属性,因为它对性能影响较小,同时也更加安全可靠。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/13755

纠错
反馈