如何获取第一个 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'。
如何遍历 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'。