解决Jquery中使用each循环时,循环外的js依旧会执行

Posted MichaelKai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Jquery中使用each循环时,循环外的js依旧会执行相关的知识,希望对你有一定的参考价值。

今天在改项目bug时,发现一个问题,我获取一个div中所有的input,并取值时,判断某一条件,但是循环外的js依然可以执行。

   $(".tab-reg-next input").each(function() {
            if ($(this).attr("id") == 1) {
                return ;
            }
        });

 

很奇怪,一般来说return会终止js,但是今天万万没想到的是,jquery 的each循环中,return不好使,原因是因为each中的return与外面的函数是没有关系的,只是单独一个循环而已,所以改成下面的方式,就可以了

 

var result = true;
        $(".tab-reg-next input").each(function() {
            if ($(this).attr("id") == 1) {
                result = false;
                return false;
            }
        });
        if (!result) {
            $.fd.msg.notice("图片太大,超过5mb");
            return
        }

 

以上是关于解决Jquery中使用each循环时,循环外的js依旧会执行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery跳出each循环:JS报错:illegal break statement

JQuery跳出each循环的方法(包含数组遍历)

如何在 jQuery 中停止 .each .animate 循环函数

将 jQuery each() 循环重新设计为 Vanilla JS

jquery each()循环

如何在 jQuery / javascript 中使用 each() 进行迭代或循环