我是jquery的新手,我有一个包含多个无序列表的页面ul。 我需要逆转每个ul的顺序,我看到了这个答案jQuery reversing the order of child elements 但它会混淆所有列表中的所有项目。 我试图改变代码以适应我的需要,但它没有做我想要的,我可以访问每个ul的每个li,但我不知道如何扭转li项目的顺序。
我的代码:
$(function() {
ul = $('ul'); // your parent element
ul.each(function(i,ul){
$(this).children().each(function (i,li) {
alert(i);/*i got to do something here*/
});
})
});
答案 0 :(得分:5)
当您有多个ul
时,这适用于:http://jsfiddle.net/dG373/4/
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
-
$('ul').each(function(){
var ul = $(this);
ul.children().each(function(i, li){
ul.prepend(li)
});
});
答案 1 :(得分:1)
通过在其他元素之前或之后插入元素,可以非常轻松地在DOM中移动元素。当您在jQuery实例中获得一组元素时(例如,使用$(...)
),您将获得按文档顺序匹配的静态元素集。因此,在那一点上反转它们只是循环匹配的集合并移动它们:
var list = $("selector_for_the_list");
var items = list.children();
var index;
for (index = items.length - 1; index >= 0; --index) {
list.append(items[index]);
}
答案 2 :(得分:0)
脱离我的头顶:
1。)选择您想要颠倒顺序的项目(例如$("div.myitems")
)
2。)在项目上调用$.makeArray
以变成 true 数组。
3.)调用javascript .reverse()
方法反转数组。
我从来没有这样做过,所以我不确定它是否会起作用,但它可能会给你一些建议!