JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象
- $.each()
var sum = 0;var arr = [ 1, 2, 3, 4, 5 ];for ( var i = 0, l = arr.length; i < l; i++ ) { sum += arr[ i ];}console.log( sum ); // 15$.each( arr, function( index, value ){ sum += value;});console.log( sum ); // 15 |
需要注意的是我们不需要通过arr[ index ]来访问$.each()迭代的值。
var sum = 0;var obj = { foo: 1, bar: 2}for (var item in obj) { sum += obj[ item ];}console.log( sum ); // 3$.each( obj, function( key, value ) { sum += value;});console.log( sum ); // 3 |
需要注意的是$.each()可以用来迭代plain对象,、数组和非JQuery集合的类数组对象,JQuery集合需要使用.each()。
// 以下代码是错误的$.each( $( "p" ), function() {}); |
- .each()
<ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li></ul>$( "li" ).each( function( index, element ){ console.log( $( this ).text() );});// Link 1// Link 2// Link 3 |
- 第二参数
$( "li" ).each( function( index, listItem ) { this === listItem; // true $.ajax({ success: function( data ) { // 上下文发生改变了 this !== listItem; // true } });}); |
- 有时候.each()不是必要的
$( "li" ).each( function( index, el ) { $( el ).addClass( "newClass" );});$( "li" ).addClass( "newClass" ); |
也有一些方法是不能进行遍历的,这时就需要 .each()的帮助了。例如:
// 无法运行的$( "input" ).val( $( this ).val() + "%" );// .val() 不能改变执行上下文,所以这里this === window$( "input" ).each( function( i, el ) { var elem = $( el ); elem.val( elem.val() + "%" );}); |
- .attr() (getter)
- .css() (getter)
- .data() (getter)
- .height() (getter)
- .html() (getter)
- .innerHeight()
- .innerWidth()
- .offset() (getter)
- .outerHeight()
- .outerWidth()
- .position()
- .prop() (getter)
- .scrollLeft() (getter)
- .scrollTop() (getter)
- .val() (getter)
- .width() (getter)
$( "input" ).each( function( i, el ) { var elem = $( el ); elem.val( elem.val() + "%" );});$( "input" ).val(function( index, value ) { return value + "%";}); |
- .map()
var newArr = [];$( "li" ).each( function() { newArr.push( this.id );});$( "li" ).map( function(index, element) { return this.id;}).get(); |
需要注意的是,.get()连接在最后面,.map()返回的是一个JQuery包裹集合,即使回调函数返回的是字符串。.get()返回的是一个基本的JavaScript数组。如果想要拼接字符串,可以在数组方法.get()之后连接原生JavaScript方法 .join()。
- $.map()
<li id="a"></li><li id="b"></li><li id="c"></li><script>var arr = [{ id: "a", tagName: "li"}, { id: "b", tagName: "li"}, { id: "c", tagName: "li"}];// 返回 [ "a", "b", "c" ]$( "li" ).map( function( index, element ) { return element.id;}).get();// 返回 ["a", "b", "c"]$.map( arr, function( value, index ) { return value.id;});</script> |
JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象的更多相关文章
- JQuery官方学习资料(译):JQuery对象
每当创建一个新的元素(或者选择一个已经存在的元素)时,JQuery将返回一个元素的集合.大部分的开发人员新接触JQuery的时候,都把这个集合当做数组.这个集合中的DOM元素有从零开始的索引, ...
- JQuery官方学习资料(译):避免与其他库的冲突
避免与其他库的冲突 JQuery库和它所有的插件都是包含在jQuery命名空间下的,作为一般规则,全局对象被存储在jQuery的命名空间内,所以你不会得到jQuery和任何其他库之间的冲突(例 ...
- JQuery官方学习资料(译):遍历
一旦你通过JQuery创建了选择器,你就可以对此进行更为深入的遍历.遍历可以分为三个基本组成部分,父节点.子节点和兄弟节点.JQuery为这些部分提供了许多丰富易用的方法. <div c ...
- JQuery官方学习资料(译):Utility方法
JQuery提供了一些utility方法在$命名空间里,这些方法对完成常规的编程任务非常有帮助. $.trim() 删除前后部的空白内容. // 返回 "lots of ex ...
- JQuery官方学习资料(译):类型
类型 JavaScript提供了多个内置数据类型.除了这些,这份文档还将介绍一些虚拟类型,例如选择器.伪类.事件等. String 在JavaScript中字符串是一个不可变的对象,它包含无. ...
- JQuery官方学习资料(译):使用JQuery的.index()方法
.index()是一个JQuery对象方法,一般用于搜索JQuery对象上一个给定的元素.该方法有四种不同的函数签名,接下来将讲解这四种函数签名的具体用法. 无参数的.index() < ...
- JQuery官方学习资料(译):Data方法
你可能经常会想需要通过元素来存储一些数据.在JavaScript中你可能需要给元素添加属性来实现这样的功能,但是在某些浏览器中,你可能还需要处理因此造成的内存泄露问题.JQuery提供了一个简 ...
- JQuery官方学习资料(译):CSS
JQuery提供了一个处理方法,可以获取或设置元素的CSS属性. // 获取 CSS 属性 $( "h1" ).css( "fontSize" ); / ...
- JQuery官方学习资料(译):操作元素
获取和设置元素的信息 有很多种方式可以改变现有的元素,最常见的是改变HTML内容或者元素的属性.JQuery提供了简单的夸浏览器的方法来帮助你实现元素信息的获取和设置. .html():获 ...
随机推荐
- python elasticsearch 批量写入数据
from elasticsearch import Elasticsearch from elasticsearch import helpers import pymysql import time ...
- React 之 JSX
开发完了一个项目了才回来研究React 一系列的技术,算是对自己的一个提高吧,也是小公司程序员的无奈. JSX是什么? JSX是javascript的语法的扩展. 为什么使用JSX? 1.React ...
- mongodb的几种运算符
①比较运算符: 等于:默认是等于判断,没有运算符 小于:$lt(less than) 小于等于:$lte(less than equal) 大于:$gt(greater than) 大于等于:$gte ...
- xgboost 多gpu支持 编译
xgboost 多gpu支持 编译 Ubuntu 18.04.2Linux 4.15.0-46-genericgcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 cuda ...
- return和throw某些特性相似
拷贝构造函数的调用拷贝构造函数会在以下三中情况下被调用(1)当类的一个对象去初始化该类的另一个对象时 int main(){ Point a(1,2); Point b(a);//用对象a初始化对象b ...
- 解决idea导入项目后依赖报错问题
1.在idea首页 Confige-->setting-->build,execution,deployment-->buildTool-->maven-->work o ...
- 分享我在 vue 项目中关于 api 请求的一些实现及项目框架
本文主要简单分享以下四点 如何使用 axios 如何隔离配置 如何模拟数据 分享自己的项目框架 本文主要目的为以下三点 希望能够帮到一些人 希望能够得到一些建议 奉上一个使用Vue的模板框架 我只是把 ...
- 使用cloudreve搭建个人网盘
这次将腾迅的对象存储cos挂载到了服务器上,就想自己搭建个网盘,虽然每月50G的空间和10G流量,也够用了 之前写过使用owncloud来搭建个人网盘,使用起来挺方便,就是不知道为什么感觉打开速度慢, ...
- TensorFlow.org教程笔记(二) DataSets 快速入门
本文翻译自www.tensorflow.org的英文教程. tf.data 模块包含一组类,可以让你轻松加载数据,操作数据并将其输入到模型中.本文通过两个简单的例子来介绍这个API 从内存中的nump ...
- CSS怎么在项目里引入自定义字体(@font-face)
前言: 以前我一直用内置的默认字体给文字设置字体,直到一天UI妹纸给了我下面的字体 当时我是蒙蔽的,这个字体的效果如下 默认字体并无该字体,直接设置是没有效果的,这时就需要用到自定义字体了 下面 ...