如何保留添加到 jQuery 匹配集中的项目的顺序?

2024-03-13

我正在尝试按特定顺序将元素添加到 jQuery 对象。但是,结果集的排序方式与 DOM 树相同。例如:

<div>one</div>
<span>two</span>
<p>three</p>

...

var $result = $("span").add("p").add("div");

我想要一个结果集,其中 $result[0] 是跨度,$result[1] 是 p,依此类推。但是,它们的顺序与 DOM 中的顺序相同。

除了 .add() 之外,还有其他方法可以像我想要的那样构建 jQuery 对象吗?

我知道我可以为它们分配一些数据属性来指定顺序,并据此对结果集进行排序。然而,这需要在我的应用程序中发生数十次,并且每次都必须分配订单数据值和排序,这将非常难看,并且需要很长时间才能实现。


你可以使用原生的Array.push:

$.fn.push = function(selector) {
    Array.prototype.push.apply(this, $.makeArray($(selector)));
    return this;
};

var $result = $("span").push("p").push("div");

DEMO: http://jsfiddle.net/ZUAcy/ http://jsfiddle.net/ZUAcy/

你可能认为 jQuery 在幕后做这件事add()但它实际上从函数返回一个pushStack来优化它的选择器:

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

如何保留添加到 jQuery 匹配集中的项目的顺序? 的相关文章

随机推荐

  • 快速for循环与睡眠

    我有一个 Swift 4 ios 应用程序 按下按钮时会显示随机消息和照片 这工作正常 但我想创建一个无限循环来在按下按钮时显示随机消息 照片 我尝试了多种方法来实现这一目标 但没有一个有效 在主线程完成之前 标签和图像视图似乎不会更新 下
  • 让 ScrollView 与自动布局和情节提要一起使用

    我正在尝试为我想要构建的应用程序制作一个非常简单的布局 但我似乎正在努力使用 ScrollView 并通过 Storyboard 让它工作 基本上我正在尝试构建以下内容 我已经使用几个教程完成了约束 但它要么不滚动 要么看起来错误 有什么建
  • 与 React 内联自定义 `::-webkit-scrollbar`

    我怎样才能申请 webkit scrollbar在 React 中使用内联样式将伪元素添加到组件 你不能写pseudo内联选择器 需要在css中添加 参考这个link https developer mozilla org en US do
  • 关闭时 SqlDependency 订阅不会从 dm_qn_subscriptions 中删除

    My SQL依赖关系工作正常 当应用程序退出时 代理队列和服务会正确删除 我确实执行SqlDependency Stop 按照终止进程之前的建议 但我注意到由SQL依赖关系应用程序关闭后 仍保留在表 sys dm qn subscripti
  • watir-webdriver 黑色屏幕截图

    我正在使用 watir webdriver 浏览我的网站并在不同的浏览器中抓取屏幕截图 有时 在 IE 中截取的屏幕截图尺寸正确 但颜色全黑 同时运行的 Firefox 测试看起来不错 browser driver save screens
  • Javascript window.open 不工作

    好的 我正在尝试登录推特 这段代码中没有打开窗口 收到警报的响应不为空 并且是指向登录屏幕的链接 有任何想法吗 var url twitter login php var con createPHPRequest con open POST
  • 参数和列表哪个更好

    我当前的代码如下 它是作为代理暴露给客户端的WCF服务方法 public UnifiedDTO GetAllCardTitle string trainSymbolOrCarLocation DateTime startDate DateT
  • 为什么应用程序安装了两次?

    当我运行 Android App Studio 时 单元格是应用程序 安装 两次 有两个应用程序 一个称为 SplashScreenActivity 另一个称为 Doctor Quiz 我的应用程序 两者是平等的 如果我卸载一个 另一个也会
  • 在 django 1.7 中包含静态 js 文件

    这是一部分settings py STATIC URL static STATICFILES DIRS os path join BASE DIR static HTML 模板 load staticfiles vendor jquery
  • 哪种洪水填充算法性能更好?

    我正在尝试实现一种与洪水填充类似的算法 问题是我不确定应该以什么方式实现它 例如递归 非递归 我知道每一种都有其缺陷 但其中一种必须比另一种更快 当非递归每次分配 4 个新点时 递归会在堆栈上打开新函数 非迭代的示例 Stack
  • 我应该在新项目中使用“请求”模块吗?

    The 请求 模块 https github com request request长期以来一直是 Node js 的标准 他们最近已弃用 https github com request request issues 3142图书馆 我正
  • XAMPP - Apache 未在 Mac OS 上启动

    https www apachefriends org download html https www apachefriends org download html 以前我使用的是xampp osx 7 1 10 0 installer
  • Android ValueAnimator 在重复期间暂停

    因此 我使用 ValueAnimator 将火柴人的四肢以无限循环的方式从一个位置移动到另一个位置 或者至少直到动画停止 我的问题是 当动画师重复时 我会稍微停顿 就好像动画滞后一样 但只有当动画重复时才会发生这种情况 我还有其他动画只发生
  • 将 csv 文件中的数据放入数组中(Javascript)

    我需要能够从 CSV 文件中获取数据 该文件已由用户通过
  • 如何在 Android DatePicker 中设置自定义月份名称?

    如何在 Android DatePicker 中设置自定义月份名称 例如 new String 一月 二月 您可以创建一个自定义DatePicker像这样扩展系统类 DatePicker class MyCustomDatePicker e
  • 找不到 AsyncPostBackTrigger 的 ControlID

  • Kivy TextInput 位于 Android 键盘上方,但屏幕的其余部分保持原样

    我正在 Kivy 中构建一个问答游戏 它在屏幕底部为用户提供了一个 TextInput 选项 它位于底部 因为答案的线索显示在顶部 我遇到的问题是 当我将应用程序部署到手机上时 Android 屏幕键盘会弹出并挡住我近一半的屏幕 我尝试过s
  • 通过 shell 脚本更改文件内容

    我有一个要求 我需要更改文件的内容 例如 xyz cfg 该文件包含如下值 group address 127 8 8 8 port 7845 Jboss username xyz ITR3 我想在需要时通过 shell 脚本更改此内容并保
  • 我无法在 androidx.appcompat:appcompat:1.1.0 上使用 API 反射

    我的 androidx appcompat appcompat 1 1 0 有问题 这是一个新问题 因为在 androidx appcompat appcompat 1 0 2 上它不存在 我有一个代码 使用反射从微调器获取 mPopup
  • 如何保留添加到 jQuery 匹配集中的项目的顺序?

    我正在尝试按特定顺序将元素添加到 jQuery 对象 但是 结果集的排序方式与 DOM 树相同 例如 div one div span two span p three p var result span add p add div 我想要