假设我有一些带有未标记内容的HTML,例如:
<html>
<body>
<p>text in a tag</p>
other text outside any tag
</body>
</html>
如何找到未标记的元素?甚至document.getElementsByTagName('*')也不包含未标记的元素。
TIA
答案 0 :(得分:3)
就你的情况而言,你可以做到
document.getElementById('body').lastChild
然而,在更一般的情况下,您需要循环访问子项并检查
a = document.getElementById('body').lastChild
console.log(a.nodeType) // 3
console.log(a.nodeName) // #text
以下是jsfiddle
的示例答案 1 :(得分:1)
我建议使用.nodeType
属性,该属性将返回一个整数值,具体取决于返回的节点类型。文本节点返回值3.元素节点返回值1,但<p>
内的文本计为nodeType为3的自己的节点。
考虑到这一点,如果您正在查找作为您的body元素的子元素的textNodes应该可以使用以下几行。
var nodes = document.getElementByTagName('body').childNodes
for (i=0; i < nodes.length; i++)
{
if(nodes.childNode[i].nodeType == 3)
{
//THIS NODE IS A TEXT NODE OF THE BODY ELEMENT
//DO WHAT YOU NEED WITH IT
}
}