$.each([集合]) 与 $([集合]).each()

2024-05-07

两种方法似乎产生相同的结果 http://jsbin.com/owedo/,但我一直很难真正说服人们第二种方法有效,因为它显然并不为人所知。

// Create some data
var foo = { 'vals':[ {'id':'foo'}, {'id':'bar'} ] }​​​​​​​​​​​​​​​​​;

// Common Method    
$.each(foo.vals, function(i,o){
    alert(this.id);
});

// Alternative (lesser-known?) Method
$(foo.vals).each(function(i,o){
   alert(this.id); 
});

查了一下来源,这两者似乎是一回事。第二种方法如下:

each: function( callback, args ) {
  return jQuery.each( this, callback, args );
}

该方法显然调用了更常见的方法,这意味着它同样合法。这种理解是否正确,还是我在这里遗漏了一些东西?

我通常信任这种方法,因为它不会导致我偏离选择器的标准实践。让我们面对现实吧,我们受过训练可以做到:

$("p").each();

因此,这样做似乎很自然:

$(obj).each();

我错了吗?


两者之间的差异实际上是指数级的,具体取决于您如何使用它。

首先$.each构成一个single调用函数来启动迭代器。

第二$(foo.vals).each makes three调用函数来启动迭代器。第一个是到$()它会生成一个新的 jQuery 包装器集(不确定在此过程中进行了多少其他函数调用)。然后调用$().each。最后它进行内部调用jQuery.each启动迭代器。

在您的示例中,至少可以说差异可以忽略不计。但是,在嵌套使用场景中,您可能会发现性能成为一个问题。

最后,jQuery Enlightenment 中的 Cody Lindley 不建议使用$.each由于涉及函数调用,迭代次数大于 1000。使用正常的for( var i = 0... loop.

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

$.each([集合]) 与 $([集合]).each() 的相关文章

随机推荐

  • 保留 PowerShell 函数返回类型

    在我的 PowerShell 脚本中 我需要使用以下签名调用 NET 方法 class CustomList System Collections Generic List
  • 导入错误:无法导入名称“_print_elapsed_time”

    你好 我正在尝试使用 sklearn 中的 make pipeline 模块 但是当我尝试使用以下命令导入它时 from sklearn pipeline import make pipeline 我收到此错误 ImportError ca
  • AutoMapper MapAtRuntime() 的作用是什么?

    我见过MapAtRuntime AutoMapper 中的函数 这是我从智能感知中得到的解释 不要预先计算该成员的执行计划 只需在运行时映射它 通过不内联简化执行计划 但它实际上有什么作用呢 我应该如何 何时使用它 I don t know
  • WAMP/MySQL 错误语言不正确

    我已经多次重新安装WAMP 搜索了数百页 但仍未解决此问题 我查看了 phpmyadmin 配置文件 设置 cfg Lang en utf 8 卸载了多次 如上所述 似乎没有运气 任何帮助 将不胜感激 要更改 MySQL 在报告时使用的语言
  • 选择列表设置所选项目 角度 2 ngModel

    这是我当前的代码
  • IIS7 和 IE8 - 页面在相同版本的 IE8 上呈现不同?

    我有一个在 IIS7 下运行的 ASP NET 框架 2 0 Web 应用程序 当我使用 IE8 localhost 在服务器上运行应用程序时 应用程序按预期运行 当我在 Visual Studio 2008 框架 2 0 中运行该应用程序
  • 是否可以从 NSFetchedResultsController 获取最新快照

    从 iOS 13 开始 保持UITableView与一个同步NSFetchedResultsController好像是有快照的 每当 ManagedObjectContext 报告添加 删除或更新时 NSFetchedResultsCont
  • 会话“app”:安装 APK 时出错

    尝试按照说明在真实设备上安装应用程序 http developer android com tools device html http developer android com tools device html 最后 Android
  • AMQPRuntimeException:读取数据时出错。收到 0 而不是预期的 7 字节

    它曾经有效 但现在不再有效了 我正在使用 php amqplib 和 RabbitMQ 当我尝试创建新的 AMQP 连接时 connection new AMQPConnection localhost 5672 username pass
  • “Java”“List”方法“size”如何工作?

    在Java中 有一个List接口和size 计算尺寸的方法List 当我打电话时List size 怎么算呢 是线性计数 还是确定计数后只返回值size 大小定义为列表中元素的数量 该实现未指定 size 成员函数如何操作 迭代成员 返回存
  • python执行列表和函数列表[重复]

    这个问题在这里已经有答案了 我正在将 Python 2 7 与 Autodesk Maya 结合使用 这是我的问题的一个例子 import maya cmds as m def a passedString print this passe
  • 在 jsTree 上下文菜单中创建自定义项目

    我在 asp net mvc3 中使用 jsTree 和 contextmenu 创建一个树视图 div ul li a href class usr Model Name a Html Partial Childrens Model li
  • 在 C# 中使用 VB6 字符串数组

    我有 旧的 VB6 代码 我想从 C 代码中使用它 这有点类似于这个问题 https stackoverflow com questions 23507416 passing string array from vb6 to c net 但
  • WatiN pressTab 不按 Tab

    有没有人找到了在 Internet Explorer 中使用 watiN 按 Tab 键的方法 您的意思是要按 Tab 键本身 还是只是单击看起来像 Tab 的 HTML 元素 对于后者 请对适当的元素 Div Span 等 使用 Clic
  • mysql 如何比较 dd-mon-yy 格式的日期

    如何比较格式中的日期dd mon yy 例如 2014 年 11 月 10 日 gt 2013 年 10 月 7 日 select expiration date from grocery where expiration date lt
  • 将文件名存储在变量中并在 SSIS 中使用该文件名创建表

    我在 SSIS 的一个文件夹中只有几个 excel 源文件 我想从这些 Excel 文件中提取数据并加载到 SQL 表中 我的问题是我想一一保存所有文件名 并想创建与文件名完全相同的 SQL 表 然后要加载相应表中的每个Excel文件 请帮
  • Oozie SSH 操作

    Oozie SSH 操作问题 Issue 我们正在尝试在集群的特定主机上运行一些命令 我们为此选择了 SSH Action 我们面对这个 SSH 问题已经有一段时间了 这里真正的问题可能是什么 请指出解决方案 logs AUTH FAILE
  • LibGDX - 着色器适用于桌面但不适用于 Android

    我编写了一个简单的程序 可以在 3D 环境中渲染球体 并根据球体周围的四个光源为其着色 当我在桌面上运行该程序时 它工作得很好 但在 Android 设备上 球体只是纯色的 下面是一些图片来说明我正在谈论的内容 gt Desktop gt
  • “马来半岛标准时间”的时区问题

    我有一个在 C 上运行以下代码的程序 TimeZoneInfo localZone TimeZoneInfo Local string timeZone TimeZoneInfo FindSystemTimeZoneById localZo
  • $.each([集合]) 与 $([集合]).each()

    两种方法似乎产生相同的结果 http jsbin com owedo 但我一直很难真正说服人们第二种方法有效 因为它显然并不为人所知 Create some data var foo vals id foo id bar Common Me