如何获取第一个HTML元素的文本

时间:2019-07-07 19:15:55

标签: html dom traversal

如何遍历HTML DOM以递归获取每个元素的文本。我只需要获取HTML元素的文本,而无需获得子元素的文本。 考虑是否存在嵌套的HTML元素,然后如何获取第一个元素的文本,以消除嵌套的子元素和相应的文本。

我尝试了“ elem.InnerHTML ”,“ elem.InnerTEXT ”,“ elem.TextContent ”,但这些似乎都在恢复来自所有嵌套元素的文本。

代码示例: 我的HTML如下:

<HTML>
    <HEAD></HEAD>
    <BODY>
        <DIV> SOMEDIVTEXT 
            <TABLE>
              <TBODY>
               <TR><TD>COLUMN1</TD></TR>
               <TR><TD>COLUMN2</TD></TR>
              </TBODY>
            </TABLE>
        </DIV>
    </BODY>
</HTML>

我只需要在当前节点指针位于DIV时提取 SOMEDIVTEXT ,而无需获取嵌套子代的文本。

2 个答案:

答案 0 :(得分:0)

尝试使用firstChild属性。它获取文本节点。

例如:

document.body.firstElementChild.firstChild

它适用于此代码示例。

答案 1 :(得分:0)

好吧,所以假设(1)您正在浏览器中编写Javascript,以及(2)您已将元素作为对象(您在问题中提到了“ elem”,所以我想您已经知道了吗?),那么您可以使用elem.childNodes()获取元素的子元素。

这将为您提供一个Nodelist对象,其中包含该元素内的每个节点。对于您在问题中引用的HTML,它将是两个节点。第一个是包含文本SOMEDIVTEXT的文本节点,第二个是包含<TABLE>元素的元素节点。

因此elem.childNodes[0]将获得您尝试提取的文本。

但是DOM非常灵活,因此还有其他一些属性和方法也可以达到相同的效果,包括另一个答案中提到的'elem.firstChild'。