jquery在循环中向上/向下移动

jquery moving up/down in loop

本文关键字:移动 jquery 循环      更新时间:2023-09-26

我正在尝试向上/向下移动div中的元素。一旦它被移动,item.position就必须与前一个互换。下面是代码。有人能建议如何将新分配的位置和相关数据序列传递到阵列中,以便将其传递到控制器并插入数据库吗

<c:forEach var="item" items="${entry.value }" >
<ul>
<li> <div class="rows">
          <a id='${item.position}' data-seq='${attr.id}'  class="noDownloadFormat" href="/files/${item.value}" target="_blank"><c:out value="${item.title}" /></a>
         <div style="float:right;margin-top:-15px;">
             <input type="button" class="btn"  value="UP" />
          </div>
      </div>
</li>
<ul>
    </c:forEach>

Jquery:

 $(document).ready(function () {
   $(".btn1").click(function(){
var $current = $(this).closest('li')
var currentval =$(this).closest('li').children().find("a").prop("id");
var prevVal=$current.prev('li').children().find("a").prop("id");
    var $previous = $current.prev('li');
      if($previous.length !== 0){
        $current.insertBefore($previous);
    $(this).closest('li').children().find("a").prop("id",prevVal);
    $current.prev('li').children().find("a").prop("id")==currentval ;
     }
      return false;
    });

    });

感谢

我修改了jquery,现在我可以上下移动,但不能交换的位置

我刚刚完成了向上按钮。。。在线调整。

<html>
<body>
<ul>
    <li>
        <div class="rows">
            <a id='position1' data-seq='id1'  class="noDownloadFormat" href="#" target="_blank">title1</a>
            <div style="float:right;margin-top:-15px;">
                <input type="button" class="btn" value="UP 1">
            </div>
        </div>
    </li>
    <li>
        <div class="rows">
            <a id='position2' data-seq='id2'  class="noDownloadFormat" href="#" target="_blank">title2</a>
            <div style="float:right;margin-top:-15px;">
                <input type="button" class="btn" value="UP 2">
            </div>
        </div>
    </li>
    <li>
        <div class="rows">
            <a id='position3' data-seq='id3'  class="noDownloadFormat" href="#" target="_blank">title3</a>
            <div style="float:right;margin-top:-15px;">
                <input type="button" class="btn" value="UP 3">
            </div>
        </div>
    </li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
    var handler = function (e) {
        $li = $(e.target).parent().parent().parent();
        // Avoid delete element if it's at top of list.
        if ($li.prev().size() !== 0) {
            // Move element.
            $li.prev().before($li.remove());
            // Bind click handler to new button.
            $('.btn', $($li)).click(handler);
        }
    };
    $('.btn').on('click', handler);
</script>
</body>
</html>