jquery each 跳出问题与解决方法

在一个function里有一个each,在each里某种条件 成立的话,就把这个function返回true或者false

function methodone(){
....
$.each(array,function(){
if(条件成立){
return true;
}
});
....
}

如果发现老是不对。

后来查找资料才发现,在each代码块内不能使用break和continue,要实现break和continue的功能的话,要使用其它的方式
break----用return false;
continue --用return ture;

所以当我在each里想使用return true给这个function返回时,其实只是让each继续执行而以
连each都没有中断,所以function也就不能return了

1.obj对象是数组
each方法会对数组中子元素的逐个进行fn函数调用,直至调用某个子元素返回的结果为false为止,也就是说,我们可以在提供的fn函数进行处理,使之满足一定条件后就退出each方法调用。当each方法提供了arg参数时,fn函数调用传入的参数为arg,否则为:子元素索引,子元素本身
2.obj 对象不是数组
该方法同1的最大区别是:fn方法会被逐次不考虑返回值的进行进行。换句话说,obj对象的所有属性都会被fn方法进行调用,即使fn函数返回false。调用传入的参数同1类似。

var arr = [ "one", "two", "three", "four"];
$.each(arr, function(){
alert(this);
});
//上面这个each输出的结果分别为:one,two,three,four
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//其实arr1为一个二维数组,item相当于取每一个一维数组,
//item[0]相对于取每一个一维数组里的第一个值
//所以上面这个each输出分别为:1 4 7
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
});

//这个each就有更厉害了,能循环每一个属性
//输出结果为:1 2 3 4
 需要特别注意的是each方法中fn的具体调用方法并不是采用简单的fn(i,val)或fn(args),而是采用了fn.call(val,i,val)或fn.apply(obj.args)的形式,这意味着,在你自己的fn的实现中,可以直接采用this指针引用数组或是对象的子元素。这种方式是绝大多数jquery所采用的一种实现方式。

 

 

时间: 2024-10-06 04:14:38

jquery each 跳出问题与解决方法的相关文章

解析prototype,JQuery中跳出each循环的方法

 这篇文章主要介绍了在prototype,JQuery中跳出each循环的方法.需要的朋友可以过来参考下,希望对大家有所帮助   代码如下: function chk(){         var flag=true;         var msg='';         var tips={'username':'姓名','tel':'电话','company':'公司名称','loupan_name':'楼盘名','sdate':'团购时间','content_1':'团购内容'};  

jquery live()重复绑定的解决方法介绍

 本篇文章主要是对jquery中live()重复绑定的解决方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Query中.live()方法的使用方法    今天在写代码的时候遇到一个问题,直接上代码看: $(function(){            $(".file").live("click",function(){                     var task_name=$(this).text();            

jquery live()重复绑定的解决方法介绍_jquery

Query中.live()方法的使用方法 今天在写代码的时候遇到一个问题,直接上代码看:$(function(){           $(".file").live("click",function(){                    var task_name=$(this).text();                    $("#selecting tbody").append("<trclass=gradeA

jquery ajax返回值乱码解决方法

实例解决方法 encodeuri(encodeuri(data))  ///注意两次编码!! $.ajax({        type: "post",        url: url,        data:data,        contenttype :"application/x-www-form-urlencoded;charset=utf-8",        cache: false,        success  : viewajax.hand

在UpdatePanel内jquery easyui效果失效的解决方法_jquery

使用easyui 的好处除了界面还不错之外,也因为使用方便. 复制代码 代码如下: <div class="easyui-tabs" style="width: 300px"> <div title="搜索"> ...</div> <div title="选择">...</div> <div title="返回">...</div

jquery 智能浮动层定位解决方法

当页面滚动,智能浮动层开始要淡出浏览器窗口的时候,其浮动于浏览器窗口的最上沿显示.这种效果在国内各大网站屡见不鲜,比如新浪微博.淘宝网等. 实现原理: 默认状态就是默认状态,什么事情也不用做,定位是absolute也好,static也好,都ok.关键是当浏览器滚动的时候,对象(要浮动的层)要移除浏览器界面视区的时候,修改其position属性,让其浮动在窗口的上沿显示就可以了.最好的position属性就是fixed了,可以在IE6+和其他浏览器下浮动层平滑固定定位,由于IE6前辈不支持fixe

解析prototype,JQuery中跳出each循环的方法_jquery

复制代码 代码如下: function chk(){        var flag=true;        var msg='';        var tips={'username':'姓名','tel':'电话','company':'公司名称','loupan_name':'楼盘名','sdate':'团购时间','content_1':'团购内容'};        $$('.required').each(function(el){            if($F(el).bl

jquery ajax post 中文编码乱码解决方法

encodeuricomponent会以utf-8编码,在gbk编码下,可不可以以gbk进行编码呢? 如果还在打encodeuricomponent主意的话,那不好意思,encodeuricomponent只会utf-8编码,并没有其他api进行其他编码:不过,别担心,看看下面: encodeuricomponent,它是将中文.韩文等特殊字符转换成utf-8格式的url编码. escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeur

win7系统64位玩游戏的时候自动跳出桌面的解决方法

在win7系统64位下玩游戏的时候,没几分钟就会自动最小化跳出桌面,点击状态栏又可以返回游戏继续,但是老是跳出很烦人.怎么解决问题呢? 其实只要把搜狗输入法关掉后就可以继续游戏了!或者,其他会弹出广告的程序关掉就可以咯!