猿问

js 方法中return不是不往下执行了吗,怎么还会执行

$scope.add = function(){

    $(".showdetailsadd input").each(function () {

        console.log( $(this).parent().find(".colr").length == 1 && $(this).val() == "" )

        if ($(this).parent().find(".colr").length < 1 && $(this).val() == "") {

            nonull = $(this).siblings().find("span").eq(0).text();

            console.log(nonull);

            return false;

        }

    })

    if (nonull) {

        console.log(nonull);

        $scope.XHRmessage_show = nonull + "输入有误或未输入";

        $scope.message_show_f = true;

        $timeout(function () {

            $scope.message_show_f = false;

        }, 2000)

        return false;

    }

}

为什么进到if ($(this).parent().find(".colr").length < 1 && $(this).val() == "")条件中,已经return了,还是会进到if(nonull)条件中,


望大佬指导


qq_遁去的一_1
浏览 11046回答 5
5回答

拉莫斯之舞

在jquery的each()里用return false;&nbsp;== 正常for用break;break;只是跳出循环,不会结束方法

慕码人2483693

兄弟一个函数里面的return只能结束当前函数在这里就是function () {&nbsp; &nbsp; &nbsp; &nbsp; console.log( $(this).parent().find(".colr").length == 1 && $(this).val() == "" )&nbsp; &nbsp; &nbsp; &nbsp; if ($(this).parent().find(".colr").length < 1 && $(this).val() == "") {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nonull = $(this).siblings().find("span").eq(0).text();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(nonull);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;建议看下JS的书。JS这门语言了解不够。

慕森卡

return跳出当前函数,你仔细看一下each方法,跳出的只是each其中一个回调函数,而不是each方法本身。

临摹微笑

把 each 換成 every 然後再想停止的時候 return false
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答