日期:2014-05-16  浏览次数:20315 次

Jquery 互换节点位置的方法求助
本人菜鸟,需要用到一个方法,作用是替换两个节点对象的位置,试过INSERT,和replaceWidth,都写不好,所以求救下...

方法要传两个参数,如

<ul>
  <li>111</li>
  <li>222</li>
  <li>333</li>
  <li>444</li>
</ul>

function(a,b){

}

传入其中两个LI,使两个LI的位置互换,有没有什么好的思路呢?



------解决方案--------------------
刚才忘记删掉原来的了
JScript code

$(document).ready(function () {
            var a = $("#li1").clone();
            $("#li1").remove();
            $("#li2").after(a);
        });

------解决方案--------------------
JScript code
            function exchangePos(elem1, elem2){
                if(elem1.length === 0 && elem2.length === 0){
                    return;
                }
                var next = elem2.next(),
                    parent = elem2.parent();
                elem1.after(elem2);
                if(next.length === 0){
                    parent.append(elem1);
                }else{
                    next.before(elem1);
                }
            }
            var ul = $('ul');
            exchangePos(ul.children().eq(1), ul.children().eq(3));