0

こんにちは
、HTML dom をトラバースして要素を強調表示する JavaScript コードを書いています。
私の問題は、Firefox がテキスト ノードとして空白を返すことです。
タグを返すように強制する解決策はありますか? たとえば、「firstChild」は常にテキストではなく最初のタグを返す必要があります。

ありがとう

4

3 に答える 3

3

代わりに使用できますelement.firstElementChild。残念ながら、これはIE8以下ではサポートされていません。

または、次のノードchildNodeが見つかるまでsをクロールする小さな関数を作成することもできます。element

于 2011-01-25T11:20:26.853 に答える
3

でノード要素かどうかを確認できます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)
于 2011-01-25T11:24:15.980 に答える
1

たぶん、 TreeWalkerなどの他のDOMトラバーサルメソッドの1つを試すことができます。

于 2011-01-27T00:23:30.433 に答える