我的思路是使用递归,一层层往上找。判断元素名是DIV就返回。下面是我写的一部分,但实现不了。求大神帮忙。function findDiv(dom) { var result = []; var parents = dom.parentNode; if (parents.nodeName.toUpperCase() === "BODY") { return; } else if (parents.nodeName.toUpperCase() === "DIV") { result.push(parents.nodeName); } // console.log(result); return result; }
1 回答
已采纳
千秋此意
TA贡献158条经验 获得超188个赞
function findDiv(node) {
var result = [];
while ((node = node.parentNode, node) !== null) {
if (node.nodeName.toUpperCase() === 'DIV') {
result.push(node);
}
}
return result;
}加个循环上就行了
----- 补充下,才发现你好像是要用递归写 -----
function findDiv(node, result) {
var result = result || [];
var parent = node.parentNode;
if (parent === null) {
return result;
} else {
return findDiv(parent, ((parent.nodeName.toUpperCase() === 'DIV') ? result.concat([parent]) : result));
}
}添加回答
举报
0/150
提交
取消
