如何递归递归文本。我只需要在没有子元素文本的情况下才能获取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而不拿到嵌套儿童的文字时。
尝试firstChild属性。它获取文本节点。
例如:
document.body.firstElementChild.firstChild
它适用于此代码样本。
好吧,所以(1(您在浏览器中写下JavaScript,(2(您将元素作为对象(您在问题中提到了'Elem',所以我猜猜你有吗?(,然后您可以使用elem.childNodes()
获得元素的孩子。
这将为您提供一个Nodelist
对象,该对象包含元素中的每个节点。对于您在问题中引用的HTML的情况下,这将是两个节点。第一个将是包含文本SOMEDIVTEXT
的文本节点,第二个将是包含<TABLE>
元素的元素节点。
所以elem.childNodes[0]
将获得您要提取的文本。
但是DOM非常灵活,因此还有其他属性和方法也可以得到相同的效果,包括" Elem.firstchild",如另一个答案中所述。