我的思路是使用递归,一层层往上找。判断元素名是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条经验 获得超187个赞
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
提交
取消