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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
javascript修改表格背景色实例代码分享
Dec 10 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
详解Vue 开发模式下跨域问题
Jun 06 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
Aug 07 Javascript
js+css3实现简单时钟特效
Sep 13 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
php 页面执行时间计算代码
2008/12/04 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
javascript闭包入门示例
2014/04/30 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
学习python的几条建议分享
2013/02/10 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python数据库小程序源代码
2019/09/15 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
PHP如何与mysql建立链接
2013/05/05 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
会计系毕业求职信
2014/08/07 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
Python 中面向接口编程
2022/05/20 Python