JQuery .each() 向后
我使用 JQuery 选择页面上的一些元素,然后在 DOM 中移动它们。我遇到的问题是我需要以与 JQuery 自然选择它们相反的顺序选择所有元素。例如:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
我想选择所有 li 项目并对它们使用 .each() 命令,但我想从项目 5 开始,然后是项目 4 等。这可能吗?
I'm using JQuery to select some elements on a page and then move them around in the DOM. The problem I'm having is I need to select all the elements in the reverse order that JQuery naturally wants to select them. For example:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
I want to select all the li items and use the .each() command on them but I want to start with Item 5, then Item 4 etc. Is this possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
我以世界上最小的 jquery 插件的形式向您展示有史以来最干净的方式:
用法:
-所有功劳均归功于 Michael Geary 在此处的帖子: http://www.mail-archive.com/[电子邮件受保护]/msg04261.html
I present you with the cleanest way ever, in the form of the world's smallest jquery plugin:
Usage:
-All credit to Michael Geary in his post here: http://www.mail-archive.com/[email protected]/msg04261.html
您可以执行
以下操作
You can do
followed by
这里有不同的选项:
第一个:不使用 jQuery:
演示此处
。 .. 并使用 jQuery:
您可以使用此:
演示此处
另一种方式,使用还有 jQuery 与 反向 是:
此演示此处。
另一种替代方案是使用
length
(与选择器匹配的元素计数),并使用每次迭代的index
从那里向下。然后你可以使用这个:这个演示这里
还有一个< /strong>,与上面的有点相关:
演示此处
Here are different options for this:
First: without jQuery:
Demo here
... and with jQuery:
You can use this:
Demo here
Another way, using also jQuery with reverse is:
This demo here.
One more alternative is to use the
length
(count of elements matching that selector) and go down from there using theindex
of each iteration. Then you can use this:This demo here
One more, kind of related to the one above:
Demo here
我更喜欢创建一个反向插件,例如
用法,例如:
I prefer creating a reverse plug-in eg
Usage eg:
如果你不想将方法保存到 jQuery.fn 中,你可以使用
If you don't want to save method into jQuery.fn you can use
需要对 $.each 进行反向操作,所以我使用了 Vinay 的想法:
效果很好,谢谢
Needed to do a reverse on $.each so i used Vinay idea:
worked nicely, thanks
您无法使用 jQuery every 函数向后迭代,但您仍然可以利用 jQuery 语法。
请尝试以下操作:
You cannot iterate backwards with the jQuery each function, but you can still leverage jQuery syntax.
Try the following:
我发现 Array.prototype.reverse 对于对象不成功,因此我创建了一个新的 jQuery 函数作为替代:jQuery.eachBack()。它像普通的 jQuery.each() 一样进行迭代,并将每个键存储到一个数组中。然后它反转该数组并按照反转键的顺序对原始数组/对象执行回调。
I found
Array.prototype.reverse
unsuccessful with objects, so I made a new jQuery function to use as an alternative:jQuery.eachBack()
. It iterates through as the normaljQuery.each()
would, and stores each key into an array. It then reverses that array and performs the callback on the original array/object in the order of the reversed keys.这个答案类似于JoeChung的答案,不同之处在于通过这段代码你可以只使用容器元素(
ul
):This answer is like JoeChung's answer with the difference that by this code you can just use the container element (
ul
):你也可以尝试
You can also try
我想你需要
I think u need