JQuery中$.each 和$(selector).each()的区别详解


Posted in Javascript onMarch 13, 2015

一个通用的遍历函数 , 可以用来遍历对象和数组. 数组和含有一个length属性的伪数组对象 (伪数组对象如function的arguments对象)以数字索引进行遍历,从0到length-1, 其它的对象通过的属性进行遍历.

$.each()与$(selector).each()不同, 后者专用于jquery对象的遍历, 前者可用于遍历任何的集合(无论是数组或对象),如果是数组,回调函数每次传入数组的索引和对应的值(值亦可以通过this 关键字获取,但javascript总会包装this 值作为一个对象—尽管是一个字符串或是一个数字),方法会返回被遍历对象的第一参数。

例子:———传入数组

<!DOCTYPE html>

<html>

<head>

<script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

<body>

<script>

 

$.each([52, 97], function(index, value) {

alert(index + ‘: ‘ + value);

});

 

</script>

</body>

</html>

 

//输出

 

0: 52

1: 97

例子:———如果一个映射作为集合使用,回调函数每次传入一个键-值对

<!DOCTYPE html>

<html>

<head>

<script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

<body>

<script>

 

var map = {

‘flammable': ‘inflammable',

‘duh': ‘no duh'

};

$.each(map, function(key, value) {

alert(key + ‘: ‘ + value);

});

 

</script>

</body>

</html>

 

//输出

 

flammable: inflammable

duh: no duh

例子:———回调函数中 return false时可以退出$.each(), 如果返回一个非false 即会像在for循环中使用continue 一样, 会立即进入下一个遍历

<!DOCTYPE html>

<html>

<head>

  <style>

  div { color:blue; }

  div#five { color:red; }

  </style>

  <script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

 

<body>

  <div id=”one”></div>

  <div id=”two”></div>

  <div id=”three”></div>

  <div id=”four”></div>

  <div id=”five”></div>

<script>

    var arr = [ "one", "two", "three", "four", "five" ];//数组

    var obj = { one:1, two:2, three:3, four:4, five:5 }; // 对象

    jQuery.each(arr, function() {  // this 指定值

      $(“#” + this).text(“Mine is ” + this + “.”);  // this指向为数组的值, 如one, two

       return (this != “three”); // 如果this = three 则退出遍历

   });

    jQuery.each(obj, function(i, val) {  // i 指向键, val指定值

      $(“#” + i).append(document.createTextNode(” ? ” + val));

    });

</script>

</body>

</html>

// 输出

 

Mine is one. ? 1

Mine is two. ? 2

Mine is three. ? 3

- 4

- 5

例子:———遍历数组的项, 传入index和value

<!DOCTYPE html>

<html>

<head>

<script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

<body>

<script>

$.each( ['a','b','c'], function(i, l){

alert( “Index #” + i + “: ” + l );

});

 

</script>

</body>

</html>

例子:———遍历对象的属性,传入 key和value

<!DOCTYPE html>

<html>

<head>

<script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

<body>

<script>

 

$.each( { name: “John”, lang: “JS” }, function(k, v){

alert( “Key: ” + k + “, Value: ” + v );

});

 

</script>

</body>

</html>

正自评论的例子

1. 如果不想输出第一项 (使用retrun true)进入 下一遍历

 

<!DOCTYPE html>

<html>

<head>

<script src=”http://code.jquery.com/jquery-latest.js”></script>

</head>

<body>

<script>

 

var myArray=["skipThis", "dothis", "andThis"];

$.each(myArray, function(index, value) {

if (index == 0) {

return true; // equivalent to ‘continue' with a normal for loop

}

// else do stuff…

alert (index + “: “+ value);

});

 

</script>

</body>

</html>
Javascript 相关文章推荐
用JavaScript事件串连执行多个处理过程的方法
Mar 09 Javascript
Prototype源码浅析 String部分(二)
Jan 16 Javascript
jQuery的Ajax的自动完成功能控件简要说明
Feb 22 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
文件编码导致jquery失效的解决方法
Jun 26 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
jQuery自带的一些常用方法总结
Sep 03 Javascript
JavaScript File分段上传
Mar 10 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
JavaScript 巧学巧用
May 23 Javascript
webpack多入口多出口的实现方法
Aug 17 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
Mar 13 #Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 #Javascript
JavaScript中常用的六种互动方法示例
Mar 13 #Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 #Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 #Javascript
DOM操作一些常用的属性汇总
Mar 13 #Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 #Javascript
You might like
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
PHP脚本数据库功能详解(中)
2006/10/09 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP实现简易计算器功能
2020/08/28 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
Python将多个list合并为1个list的方法
2018/06/27 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
公司活动总结范文
2014/07/01 职场文书
司机岗位职责说明书
2014/07/29 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
小学生校园广播稿
2014/09/28 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python