如何遍历DOM树?

时间:2011-04-19 09:27:13

标签: javascript html dom tree

我正在使用以下方式使用树结构的网站:创建列表,如果此列表的元素本身是列​​表,则使用appendChild将其附加到第一个列表。大名单放在名为“树”的div中。  我想访问div“树”的内容并通过节点来显示它们。

我尝试过几种方式编码,但它不起作用,有人知道怎么做吗?

编辑(我的代码太长)

2 个答案:

答案 0 :(得分:1)

此函数遍历DOM树。你可以传递一个带有父元素和子元素的回调:

_SU3.treeIterate = function(parent, callback) {
   var children = _SU3.getChildren(parent);
   for (var i = 0; i < children.length; i++) {
      var child = children[i];
      callback(parent, child);
      _SU3.treeIterate(child, callback);
   }    
};

_SU3.getChildren = function(parent) {

  var children = new Array();

  var childNodes = parent.childNodes;
  if (childNodes == null) 
    return children;

  for (var i = 0; i < childNodes.length; i++) {
     var child = childNodes[i];
     if (child.tagName == "li" || child.tagName == "LI") {
        children.push(child);
     }
  }
  return children;
};

注意:在此示例中,getChildren()函数仅查找“li”项。必要时修改。

答案 1 :(得分:0)

如果您认为树上需要其他几项功能,建议您查看jsTree