jquery.入口函数_5个jQuery.each()函数示例

2023-11-02

jquery.入口函数

这是jQuery.each()函数的广泛概述,此函数是jQuery最重要和最常用的函数之一。 在本文中,我们将找出原因,并看看如何使用它。

什么是jQuery.each()

jQuery的each()函数用于遍历目标jQuery对象的每个元素,该对象包含一个或多个DOM元素,并公开所有jQuery函数。 这对于多元素DOM操作以及遍历任意数组和对象属性非常有用。

除了此功能外,jQuery还提供了一个具有相同名称的帮助程序函数,而无需事先选择或创建任何DOM元素即可调用该函数。

jQuery.each()语法

让我们看看实际的不同模式。

下面的示例选择网页上的每个<div>元素,并输出每个元素的索引和ID:

// DOM ELEMENTS
$('div').each(function(index, value) {
  console.log(`div${index}: ${this.id}`);
});

可能的输出为:

div0:header
div1:main
div2:footer

该版本使用jQuery的$(selector).each()函数,而不是实用程序函数。

下一个示例显示了实用程序功能的用法。 在这种情况下,将循环对象作为第一个参数。 在此示例中,我们将展示如何遍历数组:

// ARRAYS
const arr = [
  'one',
  'two',
  'three',
  'four',
  'five'
];

$.each(arr, function(index, value) {
  console.log(value);
  // Will stop running after "three"
  return (value !== 'three');
});

// Outputs: one two three

在最后一个示例中,我们要演示如何迭代对象的属性:

// OBJECTS
const obj = {
  one: 1,
  two: 2,
  three: 3,
  four: 4,
  five: 5
};

$.each(obj, function(key, value) {
  console.log(value);
});

// Outputs: 1 2 3 4 5

所有这些归结为提供适当的回调。 回调的上下文this等于其第二个参数,即当前值。 但是,由于上下文始终是对象,因此必须包装原始值:

$.each({ one: 1, two: 2 } , function(key, value) {
  console.log(this);
});

// Number { 1 }
// Number { 2 }

`

这意味着在值和上下文之间没有严格的相等性。

$.each({ one: 1 } , function(key, value) {
  console.log(this == value);
  console.log(this === value);
});

// true
// false

`

第一个参数是当前索引,它可以是数字(对于数组)或字符串(对于对象)。

1.基本的jQuery.each()函数示例

让我们看看jQuery.each()函数如何帮助我们与jQuery对象结合使用。 第一个示例选择页面中的所有a元素并输出其href属性:

$('a').each(function(index, value){
  console.log(this.href);
});

第二个示例输出网页上的每个外部href (仅假设HTTP(S)协议):

$('a').each(function(index, value){
  const link = this.href;

  if (link.match(/https?:\/\//)) {
    console.log(link);
  }
});

假设我们在页面上有以下链接:

<a href="https://www.sitepoint.com/">SitePoint</a>
<a href="https://developer.mozilla.org">MDN web docs</a>
<a href="http://example.com/">Example Domain</a>

第二个示例将输出:

https://www.sitepoint.com/
https://developer.mozilla.org/
http://example.com/

我们应该注意,来自jQuery对象的DOM元素在传递给jQuery.each()的回调中以其“本机”形式存在。 原因是jQuery实际上只是DOM元素数组的包装。 通过使用jQuery.each() ,此数组的迭代方式与普通数组相同。 因此,我们不会把包装好的元素开箱即用。

填补您的JS知识空白

在扎实的基础上培养您JavaScript技能。

立即阅读书

参考第二个示例,这意味着我们可以通过编写this.href获得元素的href属性。 如果要使用jQuery的attr()方法,则需要像这样重新包装元素: $(this).attr('href')

2. jQuery.each()数组示例

让我们再看看如何处理普通数组:

const numbers = [1, 2, 3, 4, 5];
$.each(numbers, function(index, value){
  console.log(`${index}: ${value}`);
});

该代码段输出:

0:1
1:2
2:3
3:4
4:5

这里没什么特别的。 数组具有数字索引,因此我们获得从0N-1的数字,其中N是数组中元素的数量。

3. jQuery.each()JSON示例

我们可能具有更复杂的数据结构,例如数组中的数组,对象中的对象,对象中的数组或数组中的对象。 让我们看看jQuery.each()如何在这种情况下为我们提供帮助:

const colors = [
  { 'red': '#f00' },
  { 'green': '#0f0' },
  { 'blue': '#00f' }
];

$.each(colors, function() {
  $.each(this, function(name, value) {
    console.log(`${name} = ${value}`);
  });
});

此示例输出:

red = #f00
green = #0f0
blue = #00f

我们通过对jQuery.each()的嵌套调用来处理嵌套结构。 外部调用处理可变colors的数组; 内部调用处理单个对象。 在此示例中,每个对象只有一个键,但是通常,此代码可以处理任何数量的键。

4. jQuery.each()类示例

此示例显示如何遍历具有以下HTML中给定的class productDescription每个元素:

<div class="productDescription">Red</div>
<div>Pink</div>
<div class="productDescription">Orange</div>
<div class="generalDescription">Teal</div>
<div class="productDescription">Green</div>

我们在选择器上使用each()帮助器而不是each()方法。

$.each($('.productDescription'), function(index, value) {
  console.log(index + ':' + $(value).text());
});

在这种情况下,输出为:

0:Red
1:Orange
2:Green

我们不必包含索引和值。 这些只是有助于确定我们当前正在迭代的DOM元素的参数。 此外,在这种情况下,我们还可以使用each方法更加方便。 我们可以这样写:

$('.productDescription').each(function() {
  console.log($(this).text());
});

我们将在控制台上获得它:

Red
Orange
Green

请注意,我们将DOM元素包装在一个新的jQuery实例中,以便可以使用jQuery的text()方法获取该元素的文本内容。

5. jQuery.each()延迟示例

在下一个示例中,当用户单击ID为5demo的元素时,所有列表项将立即设置为橙色。

<ul id="5demo">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>

一个索引相关的延迟(0,200,400,...毫秒)后,我们淡出元件:

$('#5demo').on('click', function(e) {
  $('li').each(function(index) {
    $(this).css('background-color', 'orange')
           .delay(index * 200)
           .fadeOut(1500);
  });

  e.preventDefault();
});

结论

在本文中,我们演示了如何使用jQuery.each()函数迭代DOM元素,数组和对象。 这是开发人员应在其工具箱中使用的功能强大且省时的小功能。

而且,如果不是jQuery,您可能想看看使用JavaScript的本机Object.keys()Array.prototype.forEach()方法。 还有诸如foreach之类的库,可让您遍历数组对象或字典对象的键值对。

请记住: $.each()$(selector).each()是用两种不同方式定义的两种不同方法。

这篇颇受欢迎的文章于2020年进行了更新,以反映当前的最佳实践,并更新结论中有关使用现代JavaScript的本机解决方案的建议。 要获得更深入JavaScript知识,请阅读我们的书: JavaScript:Ninja的新手,第二版

翻译自: https://www.sitepoint.com/jquery-each-function-examples/

jquery.入口函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery.入口函数_5个jQuery.each()函数示例 的相关文章

  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Java 中处理异步响应的设计模式

    我读过类似问答的答案 如何在 JAVA 中创建异步 HTTP 请求 https stackoverflow com questions 3142915 how do you create an asynchronous http reque
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 传递 Android DialogFragment 参数时,onCreateDialog 捆绑参数意外为 null

    我正在尝试使用 DialogFragment 在 Android 中显示一个基本对话框 并使用对话框消息的参数 如中所述StackOverflow线程 https stackoverflow com questions 15459209 p
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • asyncio - 多次等待协程(周期性任务)

    我正在尝试为异步事件循环创建定期任务 如下所示 但是我收到 RuntimeError 无法重用已等待的协程 异常 显然 asyncio 不允许等待相同的可等待函数 如中讨论的这个错误线程 https bugs python org issu
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • 从时间序列生成日期特征

    我有一个数据框 其中包含如下列 Date temp data holiday day 01 01 2000 10000 0 1 02 01 2000 0 1 2 03 01 2000 2000 0 3 30 01 2000 200 0 30
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html
  • Android Google 地图无法在当前主题中找到样式“mapViewStyle”

    添加谷歌地图视图时 我扩展了MapView 使用xml编辑器将其添加到活动中 并将我的谷歌地图api密钥手动添加到布局xml文件中 我的权限在清单文件中允许互联网 我想知道的是 在 xml 编辑器中 我收到错误 无法在当前主题中找到样式 m
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • IDM怎么设置下载会更快

    虽然IDM的下载速度已经足够彪悍 其优秀的智能动态文件分段功能和安全的分段下载技术 让大多数下载器都望尘莫及 但贪心的我们总是希望下载速度能更快 实际上 IDM也隐藏了部分功力 并可通过配置设置将隐藏的 功力 发挥出来 一般来说 Inter
  • 基于MFC对话框的Windows服务程序

    最近需求要写个服务程序 部分功能用MFC类库实现将非常方便 因此就没打算使用win32的服务程序 虽然那样对于服务很简单 首先写好mfc的对话框程序 调试什么的 功能也都完成好 这一部分和平常的mfc对话框程序没有差别 之后的服务启动后打开
  • Elasticsearch--索引备份与迁移

    Elasticsearch集群备份 以及在不同集群之间迁移数据 类似mongodb的mongodump功能 Elasticsearch也提供了备份集群中索引数据的策略 snapshot API 它会备份整个集群的当前状态和数据 并保存到集群
  • java操作rabbitmq

    JMS JMS是JavaEE规范中的一种 类比JDBC JMS即Java消息服务 JavaMessage Service 应用程序接口 是一个Java平台中关于面向消息中间件的API很多MQ产 品都实现了JMS规范 但RabbitMQ官方并
  • Rsync的配置与使用

    一 介绍 不想看直接可以跳过 Rsync 是一个远程数据同步工具 可通过 LAN WAN 快速同步多台主机间的文件 Rsync 本来是用以取代rcp 的一个工具 它当前由 rsync samba org 维护 Rsync 使用所谓的 Rsy
  • [Transformer]CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows

    CSWin Transformer 基于交叉十字形窗口的视觉Transformer框架 Abstract Section I Introduction Section II Related Work Section III Method P
  • 使用数字滤波器处理音频噪声(附Matlab程序)

    本篇文章主要介绍使用窗函数法构造FIR数字滤波器 并且滤除音频文件的噪声 以下为完整的程序 修改一下文件的位置 直接复制应该就可以 1 音频文件的采集与分析 Matlab输入的音频文件需要 wav 文件 可以使用一些软件转换格式 例如酷狗音
  • C#音频采集 (笔记)

    using System using System Collections Generic using System Text using System IO using System Threading using Microsoft D
  • Effective C++第七章-模板和泛型编程之模板特化和代码膨胀

    模板特化 class A public void func1 void func2 class B public void func1 void func2 template
  • 用JS的canvas实现数字签名

    用JS的canvas实现数字签名 思路 先创建画布 鼠标按下 同时随着鼠标的移动来绘制签名 最后鼠标松开绘制结束 直接上代码啦
  • electron 1. hello world

    cnpm init y cnpm i electron D 安装electron package json name news windows version 1 0 0 description main main js scripts t
  • 爬取电影天堂

    电影天堂爬虫之网页分析 from lxml import etree import requests BASE DOMAIN http www ygdy8 net url http www ygdy8 net html gndy dyzz
  • java中的sleep()和wait()的区别

    对于sleep 方法 我们首先要知道该方法是属于Thread类中的 而wait 方法 则是属于Object类中的 sleep 方法导致了程序暂停执行指定的时间 让出cpu该其他线程 但是他的监控状态依然保持者 当指定的时间到了又会自动恢复运
  • Java中的桥接模式(Bridge Pattern)

    Java中的桥接模式 Bridge Pattern Java中的桥接模式 Bridge Pattern 是一种结构性设计模式 它将抽象部分和实现部分分离 使它们可以独立变化 同时通过桥接对象将它们连接起来 桥接模式通过将继承关系转变为对象组
  • 简单了解Docker、Dubbo

    简单了解Docker Dubbo 以Docker为例的容器 Docker是什么 Docker的原理 以Dubbo为例的RPC调用框架 如何理解REST RPC Dubbo是什么 简单了解Docker Dubbo 以Docker为例的容器 D
  • 分号和逗号

    分号是语句的结束字符 逗号是声明变量时分割符 分号一般表示语句的终结 或者用来分隔for语句中的3段 逗号一般用来分隔先后两条子句 或在函数定义或调用中分隔参数 如 var i 0 j 2 for var k 0 k lt j k i i
  • 【华为OD机试真题】密室逃生游戏(python)100%通过率 超详细代码注释 代码优化

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 密室逃生游戏 题目描述 小强正在参加 密室逃生 游戏 当前关卡要求找到符合给定 密码 K 升
  • 爬虫时如何利用BeautifulSoup获取我们需要的数据?

    爬虫大致可以分为三步 第一步 发送request请求获得html内容 第二步 清洗数据 即从html原网页数据中筛选我们需要的数据 第三步 将需要的数据储存 在第二步筛选数据是 我们往往可以利用BeautifulSoup来完成 下面就如何利
  • 数据结构:线性表(顺序存储)顺序表类(实现顺序表的创建,输出,插入,删除功能)

    线性表顺序存储一般就是以数组的形式存储 一切都是对数组的操作 下面给出一个类定义的头文件 和一个实例 顺序表类 文件名 sq LList h include
  • jquery.入口函数_5个jQuery.each()函数示例

    jquery 入口函数 这是jQuery each 函数的广泛概述 此函数是jQuery最重要和最常用的函数之一 在本文中 我们将找出原因 并看看如何使用它 什么是jQuery each jQuery的each 函数用于遍历目标jQuery