当前位置:  编程技术>jquery

jquery中each的用法详解

    来源: 互联网  发布时间:2014-09-03

    本文导语:  在jquery中,each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,可以遍历对象、数组的属性值并进行处理。 jQuery和jQuery对象都实现了该方法,对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第...

在jquery中,each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,可以遍历对象、数组的属性值并进行处理。

jQuery和jQuery对象都实现了该方法,对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法。
也就是说,jQuery提供的each方法是对参数一提供的对象的中所有的子元素逐一进行方法调用。
而jQuery对象提供的each方法则是对jQuery内部 子元素 进行逐个调用。

核心代码:

jQuery.prototype.each=function( fn, args ) {
return jQuery.each( this, fn, args );
}

来看下jQuery提供的each方法的具体实现:
jQuery.each(obj,fn,arg) 
该方法有三个参数:进行操作的对象obj,进行操作的函数fn,函数的参数args。

根据ojb对象进行讨论:

1,obj对象是数组
each方法会对数组中子元素的逐个进行fn函数调用,直至调用某个子元素返回的结果为false为止。
即可以在提供的fn函数进行处理,使其满足一定条件后便退出each方法调用。
当each方法提供了arg参数时,fn函数调用传入的参数为arg,否则为:子元素索引,子元素本身。

2,obj 对象不是数组
与方法一的最大区别在于:fn方法会被逐次不考虑返回值的进行进行。
即obj对象的所有属性都会被fn方法进行调用,即使fn函数返回false。
调用传入的参数同1类似。
例子:


jQuery.each=function( obj, fn, args ) {
if ( args ) {
if ( obj.length == undefined ){
for ( var i in obj )
fn.apply( obj, args );
}else{
for ( var i = 0, ol = obj.length; i < ol; i++ ) {
if ( fn.apply( obj, args ) === false )
break;
}
}
} else {
if ( obj.length == undefined ) {
for ( var i in obj )
fn.call( obj, i, obj );
}else{
for ( var i = 0, ol = obj.length, val = obj[0]; i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
}
}
return obj;
}

注意:each方法中fn的具体调用方法并不是采用简单的fn(i,val)或fn(args),而是采用了 fn.call(val,i,val)或fn.apply(obj.args)的形式,这意味着,在你自己的fn的实
现中,可以直接采用this指针引用 数组或是对象的子元素。
这种方式是绝大多数jQuery所采用的一种实现方式。

来看些具体的例子吧。
代码:

$("#submit").click(function(){
try{
$('#leftTbl tr').each(function(i){
var emailInput = $("#email_"+(1+i));
if(!re.test(emailInput.val())){
alert("请正确填写email");
emailInput.focus();
throw emailInput;
}else{
email = emailInput.val();
}
});
}catch(e){
return false;
}
$("#pageform").submit();
});

通过throw 然后catch实现,也可以做了计数器到最后判断他的值!

那么在each里如何实现break与continue,看下下面的代码,你就能理解它们之间的关系了。
代码:

$('input').each(function(){
if($(this).val() == ''){
// do something
if(1==1)return false; // 使用return false 来实现跳出循环。
else return true; // 使用return true 来实现进入下一个循环。
}
});

jquery中迭代每一个元素后查看返回的值,判断是否继续迭代下一个元素。
代码:

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

就是这些了,希望大家对jquery中each的用法,有一个深入的了解。
脚本学堂,祝大家学习进步。


    
 
 

您可能感兴趣的文章:

  • JS与jquery自定义属性用法
  • jQuery setTimeout()函数的用法介绍
  • jQuery :visible 选择器(冒号)的用法
  • JQuery 判断某个属性是否存在hasAttr用法
  • jquery onpropertychange键盘事件用法举例
  • jQuery setTimeout用法总结(实例)
  • Jquery confirm弹出框的用法
  • jquery的focus函数用法示例
  • Jquery中slideToggle()与toggleClass()用法
  • Jquery 过滤器(first,last,not,even,odd)用法举例
  • jquery 字符串切割函数substring的用法说明
  • jquery判断浏览器类型($.browser用法)
  • jquery css类用法(添加、修改与删除css)
  • jquery中show()、hide()方法的用法
  • Jquery confirm弹出框的用法 iis7站长之家
  • Jquery中ajax方法data参数的用法小结
  • jquery中each的用法分享
  • jquery .attr()与.prop()用法解析
  • jquery插件jTimer jquery定时器的用法举例
  • jquery操作HTML5 的data-*的用法实例分享
  • jQuery - css() 方法示例详解
  • jquery EasyUI导入js顺序详解
  • jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
  • jQuery focus和blur事件的应用详解
  • jquery操作select详解(取值,设置选中)
  • Jquery中"$(document).ready(function(){ })"函数的使用详解
  • Jquery性能优化详解
  • jQuery插件开发的两种方法及$.fn.extend的详解
  • Jquery遍历修改url请求参数的代码详解
  • jquery选择器之内容过滤选择器详解
  • JQuery动画animate的stop方法使用详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery each循环获取与搜索元素
  • jQuery的each终止或跳过示例代码
  • Jquery each方法跳出循环,并获取返回值(实例讲解)
  • 关于jquery中全局函数each使用介绍
  • jquery进行数组遍历如何跳出当前的each循环
  • JQuery each()嵌套使用小结
  • jquery 中的each()跳出循环的语句
  • jquery each方法的例子
  • 解析prototype,JQuery中跳出each循环的方法
  • jquery退出each循环的写法
  • jquery中each方法示例和常用选择器
  • jquery中map函数与each函数的区别实例介绍
  • jquery的each方法使用示例分享
  • jquery中each遍历对象和数组示例
  • jquery each的几种常用的使用方法示例
  • 关于jQuery中的each方法(jQuery到底干了什么)
  • Jquery的each里用return true或false代替break或continue
  • jquery退出each循环怎么写
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery分页插件 Pagination jQuery Plugin
  • jQuery日历插件 jQuery Week Calendar
  • jQuery的中文日历插件 jQuery.datePickerCn


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3