jquery each()源代码
// args is for internal usage only
each: function( object, callback, args ) {
var name, i = 0,
length = object.length,
isObj = length === undefined || jQuery.isFunction(object);
if ( args ) {
if ( isObj ) {
for ( name in object ) {
if ( callback.apply( object[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( object[ i++ ], args ) === false ) {
break;
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isObj ) {
for ( name in object ) {
if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else {
for ( var value = object[0];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
}
return object;
},
分析:jquery文档说 each(callback)作用是以每一个匹配的元素作为上下文来执行一个函数。就是用each来遍历数组,来执行同一个方法
这个方法的实现最关键的是:call与apply的用法:call(apply)就是将函数的对象的从初始的上下文改为thisObj指向的对象,
就是说用thisObj来代替原来的对象来执行方法:call与apply的第一个参数为this指向的对象,而后面的参数都下传给函数的,
call传给函数的参数用逗号分隔而apply则为一个数组。
//1.callback.apply( object[ name ], args )
//2.callback.call( object[ name ], name, object[ name ] )
相关推荐
-
Jquery each方法跳出循环,并获取返回值(实例讲解)
return false:将停止循环 (就像在普通的循环中使用 'break').return true:跳至下一个循环(就像在普通的循环中使用'continue'). 复制代码 代码如下: function test(){var success = false;$(..).each(function () { if (..) { success = true; return false; }}); return success ;} jquery是对象链,所以$
-
jquery $.each() 使用小探
复制代码 代码如下: <html> <head> <title> jquery each使用 </title> <script type='text/javascript' src='jquery-1.8.2.min.js'></script> <script type="text/javascript"> $(document).ready(function(){ //进行遍历一维数组 var arr
-
浅析jQuery的链式调用之each函数
话说回来,虽然jQuery让学习前端技术的越来越多了起来,(本人就是因为学校图书馆偶然间遇到了一本jQuery基础教程(二)开始想深入的学习前端技术),关于jQuery的博文甚至多于javascript,它让编程的门槛大大的降低了,但是它隐藏了太多细节了,形如$('#id').append('<p>xxx</p>').clone().appendTo(x).end().css(...)................这样操作的模式已经很难找到常规javascript的影子.浏览器的
-
jquery $.each 和for怎么跳出循环终止本次循环
如何在jquery 中的循环中终止本次循环或者跳出循环呢?查些资料,并且试验过发现下面方法可以 1.for循环中我们使用continue:终止本次循环计入下一个循环,使用break终止整个循环. 2.而在jquery中 $.each则对应的使用return true 和return false. break可以跳出switch...case语句,继续执行switch语句后面的内容.break语句还可以跳出循环,也就是结束循环语句的执行. continue语句的作用为结束本次循环,接着进行下一次是
-
jQuery的each终止或跳过示例代码
涉及迭代,不可避免需要有非正常终止,或强制跳过的情况.在jQuery的each函数中,存在以下关系: continue :return true; break :return false; 直接return也会跳出jQuery. 设置下拉列表选中,并终止迭代 复制代码 代码如下: $("#area option").each(function(){ if($(this).text()==addrTmp[2]){ $(this).attr("selected", &q
-
JQuery for与each性能比较分析
最近在做一个性能优化方面的工作,遇到很多细节问题,现在一一把遇到的问题记录下来分享给大家,废话就不多谢,我直接贴代码. 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>for与each性能比较</title> <script src="../Cks/jquery-1.7.1.min.j
-
jQuery.each()用法分享
例遍数组,同时使用元素索引和内容.(i是索引,n是内容) 复制代码 代码如下: $.each( [0,1,2], function(i, n){ alert( "Item #" + i + ": " + n ); }); 例遍对象,同时使用成员名称和变量内容.(i是成员名称,n是变量内容) 复制代码 代码如下: $.each( { name: "John", lang: "JS" }, function(i, n){ aler
-
jquery的each方法使用示例分享
对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话说:jQuery提供的each方法是对参数一提供的对象的中所有的子元素逐一进行方法调用.而jQuery对象提供的each方法则是对jQuery内部的子元素进行逐个调用. 复制代码 代码如下: jQuery.prototype.each=function( fn, args ) { return jQuery.each( this, fn, args ); } 让我们
-
JQuery each打印JS对象的方法
我们知道javascript可以用alert输出变量的值,但是有时候返回的是一个对象,json格式的数据,jQuery可以用这个方法循环遍历读出对象的值,假如这个对象名称是obj,循环遍历打印它的值: 复制代码 代码如下: $.each(obj,function(key,val){ if($.isPlainObject(val) || $.isArray(val)){ subObj(val); }else{ alert(key+'='+va
-
关于jquery中全局函数each使用介绍
jquery 包含了两个each一个是 $().each 另一个是 $.each 区别就在于前一个是jquery对象的内置函数 而后一个 这是对象的遍历函数 一般用于ajax中获取不同的对象数据进行遍历以json为例 jquery 的getJSON 快捷方法可以便利的取得 指定url中的json文件 jquery 会内置的调用 js原生 的eval函数来解析json文本 转换成一个 js对象 然后通过each全局函数 进行遍历 以取得其中的值 语法 each(data,[params],fun
-
解析prototype,JQuery中跳出each循环的方法
复制代码 代码如下: 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退出each循环的写法
在回调函数里return false即可,大多数jq的方法都是如此的 =================================== 返回 'false' 将停止循环 (就像在普通的循环中使用 'break'). 返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue').
-
jquery $.each()使用探讨
复制代码 代码如下: <html> <head> <title> jquery each使用 </title> <script type='text/javascript' src='jquery-1.8.2.min.js'></script> <script type="text/javascript"> $(document).ready(function(){ //进行遍历一维数组 var arr
-
关于jQuery中的each方法(jQuery到底干了什么)
1. 估计很多人都会用到jQuery中的each方法. 那就来看一看jQuery都干了些什么. 找到jquery中的each源码: 复制代码 代码如下: each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) {
-
JQuery each()函数如何优化循环DOM结构的性能
如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用jQuery,这框架的API设定就有误导人们走上歧途之嫌. 复制代码 代码如下: $.fn.beautifyTable = function(options) { //定义默认配置项,再用options覆盖 return this.each(function() { var table = $(this), tbody = table.children('tbody'), tr
-
jquery里的each使用方法详解
each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,你可以遍历对象.数组的属性值并进行处理.jQuery和jQuery对象都实 现了该方法,对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话 说:jQuery提供的each方法是对参数一提供的对象的中所有的子元素逐一进行方法调用.而jQuery对象提供的each方法则是对jQuery内 部的子元素进行逐个调用. 这个JQUERY里的核心代码 复制代码
-
jquery each的几种常用的使用方法示例
jQuery源码里自己也有很多用到each方法.其实jQuery里的each方法是通过js里的call方法来实现的.下面简单介绍一下call方法. call这个方法很奇妙,其实官方的说明是:"调用一个对象的一个方法,以另一个对象替换当前对象."网上更多的解释是变换上下文环境,也有说是改变上下文this指针. 复制代码 代码如下: call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象.arg1,
-
jquery foreach使用示例
复制代码 代码如下: <form id="input_iForm" action="${pageContext.request.contextPath}/transfer/input_salary.shtml"> <input type="text" class="input_w150" vili="true" onkeyup="formatBankNo(this)"/
随机推荐
- Vim命令合集
- jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
- JS实现在页面随时自定义背景颜色的方法
- C#之CLR内存字符串常量池(string)
- php遍历类中包含的所有元素的方法
- 修改destoon会员公司的伪静态中的com目录的方法
- php与flash as3 socket通信传送文件实现代码
- Windows中使用计划任务自动执行PHP程序实例
- 轻松掌握Linux关机重启命令
- 深入C中常用的三种排序方法总结以及探讨分析
- PHP取余函数介绍MOD(x,y)与x%y
- 某页码显示的helper 少量调整,另附js版
- javascript,php获取函数参数对象的代码
- Android仿QQ左滑删除置顶ListView操作
- 在 SQLSERVER 中快速有条件删除海量数据
- PHP+Apache在Windows 9x下的安装和配置
- Android利用Glide获取图片真正的宽高的实例
- java大数乘法的简单实现 浮点数乘法运算
- 浅析javascript函数表达式
- C++控制台实现俄罗斯方块游戏