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

How to get text of first HTML element

如何遍历 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 而无需获取嵌套子节点的文本。

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

例如:

document.body.firstElementChild.firstChild

它适用于此代码示例。

好吧,假设 (1) 您正在浏览器中编写 Javascript,并且 (2) 您将元素作为对象(您在问题中提到了 'elem',所以我你猜你有?),那么你可以使用 elem.childNodes().

获取元素的子元素

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

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

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