为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2019-03-15 18:14:39
$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)条件中,望大佬指导
查看完整描述

5 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-03-28
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

兄弟一个函数里面的return只能结束当前函数在这里就是


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;

        }

    }

    

建议看下JS的书。JS这门语言了解不够。


查看完整回答
反对 回复 2019-03-28
?
慕森卡

TA贡献1806条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-03-28
?
临摹微笑

TA贡献1982条经验 获得超2个赞

把 each 換成 every 然後再想停止的時候 return false


查看完整回答
反对 回复 2019-03-28
  • 5 回答
  • 0 关注
  • 11045 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信