4

タグなしのコンテンツを含むHTMLがあると仮定します。例:

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

タグなしの要素に到達するにはどうすればよいですか?document.getElementsByTagName('*')でさえ、タグなし要素を含んでいません。

TIA

4

2 に答える 2

3

ちょうどあなたの場合、あなたは簡単に行うことができます

document.getElementById('body').lastChild

ただし、より一般的なケースでは、子をループしてチェックする必要があります

a = document.getElementById('body').lastChild

console.log(a.nodeType) // 3
console.log(a.nodeName) // #text

これがjsfiddleの例です

于 2012-08-16T10:08:48.520 に答える
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 ドキュメント

于 2012-08-16T10:13:58.503 に答える