返回后,函数返回变量未定义

Mil*_*uzz 3 javascript jquery function

这有什么理由:

function find_parent_p(x){
    daddy = jQuery(x).parent();


    if(daddy.attr("tagName").toLowerCase() == 'p'){
        console.log(daddy,"result");
        return (daddy);
    } else {
        find_parent_p(daddy);

    }

}
jQuery(document).ready(function($){

        $('img').each(function(){

            next = find_parent_p($(this));

        })


});
Run Code Online (Sandbox Code Playgroud)

将在控制台中返回一个jQuery对象(预期行为),其中返回以下内容Undefined我正在做的是将调用移到console.log函数外部,并在调用之后:

function find_parent_p(x){
    daddy = jQuery(x).parent();


    if(daddy.attr("tagName").toLowerCase() == 'p'){

        return (daddy);
    } else {
        find_parent_p(daddy);

    }

}
jQuery(document).ready(function($){

        $('img').each(function(){

            next = find_parent_p($(this));
                    console.log(next,"result");

        })


});
Run Code Online (Sandbox Code Playgroud)

wsa*_*lle 6

return在你的else情况下,你错过了陈述.如果你的函数是递归的,那么顶级调用将不会返回任何内容,你最终会得到undefined.

else {
    return find_parent_p(daddy);

}
Run Code Online (Sandbox Code Playgroud)