本人菜鸟,需要用到一个方法,作用是替换两个节点对象的位置,试过INSERT,和replaceWidth,都写不好,所以求救下...方法要传两个参数,如<ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
    <li>444</li>
</ul>function(a,b){}传入其中两个LI,使两个LI的位置互换,有没有什么好的思路呢?

解决方案 »

  1.   

    先将一个li克隆一个,然后删除它,最后将克隆的插入就OK。
      

  2.   


    <script type="text/javascript">
            function h(a, b) {
                var x = a.innerHTML;
                a.innerHTML = b.innerHTML;
                b.innerHTML = x;
            }
            window.onload = function () {
                h(document.getElementById("li1"), document.getElementById("li2"));
            }
        </script><ul>
            <li>111</li>
            <li id="li1">222</li>
            <li id="li2">333</li>
            <li>444</li>
        </ul>
      

  3.   

    Jquery<script type="text/javascript">
            $(document).ready(function () {
                var a = $("#li1").clone();
                $("#li2").after(a);
            });
        </script>
      

  4.   

    刚才忘记删掉原来的了$(document).ready(function () {
                var a = $("#li1").clone();
                $("#li1").remove();
                $("#li2").after(a);
            });
      

  5.   

    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));
      

  6.   

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