javascript递归函数:未捕获RangeError:超出最大调用堆栈大小

时间:2013-08-02 13:38:59

标签: javascript recursion stack-overflow

我有一个遍历ul li嵌套层次结构的recurent函数。它从某个节点冒出来,直到达到ul tree-0 (这是层次结构的根目录)。

功能:

function setupSelectedCategory(elem) {
    if (!elem)
        return;
    if (!elem.hasClass("tree-0")) {
        if (elem.parent().prop('tagName') == 'UL') {
            var index = jQuery(elem.parent().children()).index(jQuery(elem));
            jQuery(elem.parent()).accordion({ active: index });
        }
        return setupSelectedCategory(jQuery(elem.parent()));
    } 
    return;
}

问题:

我有一个堆栈溢出异常(至少在chrome中)。也许我没有从函数中退出正确的方式?有一些想法吗?

1 个答案:

答案 0 :(得分:2)

检查有问题..做

if( !elem || !elem.size() )