0

DOM 要素があるとします。

その要素がhref 属性である要素である子 (または子の子) を持っているかどうかを確認するには、 Javascriptでどのように行うのですか? もしそうなら、それはどのレベル(深い)にあるのかを返しますか?<a>'/'

これまでのところ、私はこれを持っています:

var children = element.children
var level = 1;
    for (var i=0; i < children.length; i++) {
      if (children[i].nodeName == 'A' && children[i].href == '/') {
        return true;
      }
    }

どうすれば子供たちの子供たちに行くことができますか?

4

2 に答える 2

0

再帰関数の場合:

function traverseChildren(el, depth) {
  depth = depth || -1;
  for (var i=0; i < el.children.length; i++) {
    if (children[i].nodeName == 'A' && children[i].href == '/') {
      return ++depth;
    }
    else if (el.children.length > 0) {
      depth = traverseChildren(el, ++depth);
    }
  }
  return depth;
}

var depth = traverseChildren(element, depth);
if (depth != -1) {
  console.log('a element found at ' + depth + ' levels deep');
}
else {
  console.log('no a element found');
}
于 2013-11-05T20:14:31.450 に答える