函数内部的jQuery函数,可以工作,但返回undefined

时间:2014-05-17 14:36:39

标签: jquery function return undefined

我正在尝试通过我编写的jQuery函数找到jQuery元素的最后一个子元素。如果我将调试器放在函数中并运行它,我可以跟踪'current'的值并且它正在做我想要的 - 它会像我希望的那样冒泡到最后一个孩子,但是它并没有在我调用的地方返回它(它返回undefined)。

代码如下:

(function($){
    $.fn.findBattleElement = function () {

        var current = this;

        var findLast = function () {
            if ( current.children().length > 0 ) {
                if ( current.children().last().is('br, p, span, td, ul, ol, li, tr, table, a, img, video, div, section, article, footer, header') ) {
                    current = current.children().last();
                    findLast();
                } else {
                    current.children().last().remove();
                    findLast();
                }
            } else {
                return current;
            }
        }

        findLast()
    };
} ( jQuery ) );

我确实尝试删除函数内部的函数,并让它尝试递归调用自身,因此不使用 {@ 1}}在第一个if / else中,我使用了findlast(),但是它只是给出了一个错误,即函数本身是未定义的。

我知道整件事情有点过分(对于缩进感到抱歉,它在我的文档中看起来很好,但是不会很好地延续到stackOverflow!),但我正在努力学习。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你需要这样做:

return findLast();

从递归函数返回值。