多个ul逆序

时间:2012-02-09 08:56:43

标签: javascript jquery

我是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*/
     });
  })  
});

3 个答案:

答案 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]);
}

Live example

答案 2 :(得分:0)

脱离我的头顶:

1。)选择您想要颠倒顺序的项目(例如$("div.myitems")

2。)在项目上调用$.makeArray以变成 true 数组。

3.)调用javascript .reverse()方法反转数组。

我从来没有这样做过,所以我不确定它是否会起作用,但它可能会给你一些建议!