我正在尝试通过我编写的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!),但我正在努力学习。任何帮助将不胜感激。
答案 0 :(得分:0)
你需要这样做:
return findLast();
从递归函数返回值。