开发者社区> 问答> 正文

在五个元素节点中。如何向左向右移动元素节点的位置?

<li>
    <img src="" alt="">
       <i class="left-button"> 左边按钮
       <i class="right-button">右边按钮
    </li>
<li>
<img src="" alt="">
       <i class="left-button"> 左边按钮
       <i class="right-button">右边按钮
       </li>
<li>
    <img src="" alt="">
       <i class="left-button"> 左边按钮
       <i class="right-button">右边按钮
    </li>
<li>
<img src="" alt="">
       <i class="left-button"> 左边按钮
       <i class="right-button">右边按钮
</li>
<li>
<img src="" alt="">
       <i class="left-button"> 左边按钮
       <i class="right-button">右边按钮
</li>

screenshot
是按钮交换相邻的位置。

在五个元素节点中。如何交两个元素节点的位置?
用什么jquery方法?

我是在百度搜不到答案,然后在技术群问话,人家只是告诉我原理。但具体方法都不说。
我迷糊了,自己研究又何时年月。没有老师的指点。

展开
收起
杨冬芳 2016-06-03 16:00:41 2158 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista
    <ul>
    <li>1111</li>
    <li>222</li>
    <li>3333</li>
    <li>44444</li>
    <li>555555</li>
    </ul>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
    
    //把第4个 插在第二个的前面(eq里面的数字是下标, 第一个元素的下标为0, 故下标为3的是第四个)
    $('li:eq(3)').insertBefore($('li:eq(1)'));
    
    
    //延时2秒
    setTimeout(function(){
        //把第二个插在第四个的后面
        $('li:eq(1)').insertAfter($('li:eq(3)'));
    }, 2000);
    
    
    </script>

    因楼主更新了问题, 下面为更新后所对应的答案, 不过我很不鼓励楼主的这种行为, 左移和右移的代码, 我在上面已经给出了, 而楼主还只想一味的要代码.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
     </head>
     <body>
    <ul>
    <li>
        <img src="" alt="1111">
           <i class="left-button"> 左边按钮</i>
           <i class="right-button">右边按钮</i>
    </li>
    <li>
    <img src="" alt="2222">
           <i class="left-button"> 左边按钮</i>
           <i class="right-button">右边按钮</i>
       </li>
    <li>
        <img src="" alt="3333">
           <i class="left-button"> 左边按钮</i>
           <i class="right-button">右边按钮</i>
    </li>
    <li>
        <img src="" alt="4444">
           <i class="left-button"> 左边按钮</i>
           <i class="right-button">右边按钮</i>
    </li>
    <li>
    <img src="" alt="5555">
           <i class="left-button"> 左边按钮</i>
           <i class="right-button">右边按钮</i>
    </li>
    </ul>
    
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
    
    var max = $('li').length;//获取LI的个数
    
    $('body').on('click.moveLeft', '.left-button', function(){
        var li = $(this.parentNode),//因为事件是绑定在 i 节点上的, 而要移动的是 LI, 所以使用 parentNode 得到li
            index = li.index();//获取当前的这个 li 的索引值
    
        if(index < 1){//如果小于1 那么就不能再往左边移了
            alert('最左边不能往左边再移了!');
            return;
        }
    
        li.insertBefore(li.prev());//把当前的li 插到它前面的那个前面(即左移)
    
    
    }).on('click.moveRight', '.right-button', function(){//右移的注释 请参考左移的
        var li = $(this.parentNode),
            index = li.index();
    
        if(index + 1 === max){//因为要往右边移, 所以要计算一下当前的元素的索引加上1, 是否等于总个数,如果等于 说明这个就是最后一个, 不能再右移了.
            alert('最右边不能往右边再移了!');
            return;
        }
    
        li.insertAfter(li.next());
    });
    </script>
     </body>
    </html>
    2019-07-17 19:26:46
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载