こんにちは
、HTML dom をトラバースして要素を強調表示する JavaScript コードを書いています。
私の問題は、Firefox がテキスト ノードとして空白を返すことです。
タグを返すように強制する解決策はありますか? たとえば、「firstChild」は常にテキストではなく最初のタグを返す必要があります。
ありがとう
こんにちは
、HTML dom をトラバースして要素を強調表示する JavaScript コードを書いています。
私の問題は、Firefox がテキスト ノードとして空白を返すことです。
タグを返すように強制する解決策はありますか? たとえば、「firstChild」は常にテキストではなく最初のタグを返す必要があります。
ありがとう
代わりに使用できますelement.firstElementChild
。残念ながら、これはIE8以下ではサポートされていません。
または、次のノードchildNode
が見つかるまでsをクロールする小さな関数を作成することもできます。element
でノードが要素かどうかを確認できますnode.nodeType === 1
。
新しい DOM Travelsal API を関数として実装することもできます。
var dummy = document.createElement("div");
var firstElementChild = ('firstElementChild' in dummy)
? function (el) {
return el.firstElementChild;
}
: function (el) {
el = el.firstChild;
while (el && el.nodeType !== 1)
el = el.nextSibling;
return el;
}
firstElementChild(el)
たぶん、 TreeWalkerなどの他のDOMトラバーサルメソッドの1つを試すことができます。