[英]A javascript recursion problem
我正在编写一个js递归函数,以查找用户单击的元素的所有祖先。 我的代码是这样的:
/**a global variable.*/
var anc;
function getAncestors(e){
var ele = e.target;
var parentName = ele.parentNode.name;
anc +=bracket(parentName);
if (parentName.toLowerCase() == "undefined" ) return;
else getAncestors(parent);
}
我使用firefox进行了运行,但错误控制台中显示一条错误消息,“错误:ele.parentNode未定义”。
另外,当我重置anc =''; 它也不起作用。
谢谢!
保罗
parent
未定义。 您可能已使用ele.parentNode
,但请参见下文。 .target
,我认为e
是一个事件。 但是您传递了parent
,这可能不是事件。 ele.parentNode
属性之前检查其是否有效。 您可能想看看它们如何在jQuery中实现parents
函数。
一个undefined
值,每使用Javascript标准, 没有一个name
属性-因此而不是试图让name
一饮而尽,只是做一个var parent = e.target.parentNode;
如果那是未定义的,请保释!
你应该这样破坏递归
if(ele.parentNode) return;
Firefox不支持parentNode.name
也许尝试这样的事情:
var anc = [];
function getAncestors(element) {
if (element.parentNode) {
anc.push(element.parentNode);
getAncestors(element.parentNode);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.