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

时间:2015-04-06 03:31:26

标签: javascript jquery

我试图将div中的元素向上/向下移动。移动后,item.position必须与前一个交换。下面是代码。有人可以建议如何将新分配的位置和关联数据seq传递到数组中,以便它们可以传递给控制器​​并插入数据库

<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,现在我可以上下移动但不能交换位置

1 个答案:

答案 0 :(得分:0)

我刚按完按钮...... Tweak it online

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