说我有一个DOM元素。
我如何在 Javascript 中查看该元素是否有任何子元素(或子元素子元素)是<a>
元素,其href属性为{{1} }?如果是这样,返回哪个级别(深度)呢?
到目前为止,我有这个:
'/'
我怎样才能找到孩子的孩子?
答案 0 :(得分:1)
怎么样:
function getLevelOfAnchorWithAttrX (element, attr) {
var anchor = element.querySelector('a[href="' + attr + '"]');
if (anchor) {
var level = 1;
var levelElement = anchor
while (levelElement.parentElement !== element) {
level++;
levelElement = levelElement.parentElement;
}
return level;
}
}
Lookey here。
答案 1 :(得分: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');
}