使用javascript查找未标记的元素

时间:2012-08-16 10:00:02

标签: javascript html dom

假设我有一些带有未标记内容的HTML,例如:

<html>
<body>
<p>text in a tag</p>
other text outside any tag
</body>
</html>

如何找到未标记的元素?甚至document.getElementsByTagName('*')也不包含未标记的元素。

TIA

2 个答案:

答案 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
 }
}

MDN nodeType documentation