首页 > 解决方案 > 我无法将元素移动到最后位置和第一个位置

问题描述

我无法移动项目当前位置和最后位置以及第一位置的国家/地区列表。但是向下和向上移动元素的位置是正确的。

我的 HTML:

<div class="ListCountries">
  <div class="item">Argentina</div>
  <div class="item">Bolivia</div>
  <div class="item">Brasil</div>
  <div class="item">Chile</div>
  <div class="item">Colombia</div>
  <div class="item">Ecuador</div>
  <div class="item">Paraguay</div>
  <div class="item">Peru</div>
  <div class="item">Uruguay</div>
  <div class="item">Venezuela</div>
</div>

我的 Javascript/jQuery:

$(".item").append("<p><button class='down'>down↓&lt;/button><button class='up'>up↑&lt;/button><button class='first'>Move First</button><button class='last'>Move last</button></p>");

$(document).on("click",".up",function() {
    var ob = $(this).closest('.item');
    ob.insertBefore(ob.prev());
});

$(document).on("click",".down",function() {
    var ob = $(this).closest('.item');
    ob.insertAfter(ob.next());
});

$(document).on("click",".first",function() {
    var ob = $(this).closest('.item');
    ob.insertAfter(ob.prepend());
});

$(document).on("click",".last",function() {
    var ob = $(this).closest('.item');
    ob.insertAfter(ob.append());
});

我的jsFiddle:

https://jsfiddle.net/cds0f5yp/20/

我究竟做错了什么?

标签: javascriptjquerylistelementmove

解决方案


尝试这个:

$(".item").append("<p><button class='down'>down↓&lt;/button><button class='up'>up↑&lt;/button><button class='first'>Move First</button><button class='last'>Move last</button></p>");

$(document).on("click",".up",function() {
    var ob = $(this).closest('.item');
    ob.insertBefore(ob.prev());
});

$(document).on("click",".down",function() {
    var ob = $(this).closest('.item');
    ob.insertAfter(ob.next());
});

$(document).on("click",".first",function() {
    var ob = $(this).closest('.item');
    ob.parent().prepend(ob);
});

$(document).on("click",".last",function() {
    var ob = $(this).closest('.item');
    ob.parent().append(ob);
});

小提琴链接


推荐阅读