假设我有一些带有未标记内容的 HTML,例如:
<html>
<body>
<p>text in a tag</p>
other text outside any tag
</body>
</html>
我怎样才能到达未标记的元素?甚至 document.getElementsByTagName('*') 也不包含未标记的元素。
TIA
假设我有一些带有未标记内容的 HTML,例如:
<html>
<body>
<p>text in a tag</p>
other text outside any tag
</body>
</html>
我怎样才能到达未标记的元素?甚至 document.getElementsByTagName('*') 也不包含未标记的元素。
TIA
就您而言,您可以简单地做
document.getElementById('body').lastChild
但是,在更一般的情况下,您需要遍历孩子并检查
a = document.getElementById('body').lastChild
console.log(a.nodeType) // 3
console.log(a.nodeName) // #text
这是关于jsfiddle的示例
我建议使用该.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
}
}