0


,我正在编写一个 javascript 代码来遍历 HTML dom 并突出显示元素。
我的问题是 Firefox 返回空格作为文本节点。
有没有办法强制它只返回标签?例如我需要“firstChild”总是返回第一个标签而不是任何文本!

谢谢

4

3 回答 3

3

你可以element.firstElementChild改用。不幸的是,IE8 及更低版本不支持此功能。

或者,您可能想编写一个小函数来抓取childNodes 直到找到下一个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

也许您可以尝试其他 DOM 遍历方法之一,例如TreeWalker

于 2011-01-27T00:23:30.433 回答