[英]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.