Javascript 如何在jQuery中获得按位置排序的元素列表?

Javascript 如何在jQuery中获得按位置排序的元素列表?,javascript,jquery,Javascript,Jquery,我有三个(可拖动的)div,可以放在屏幕上的任何位置。我需要的是,在拖动div之后,根据其左侧位置获得顺序(即最左侧的div应首先出现在列表中)。如何在jQuery中实现这一点?在我的尝试中,我总是得到原始订单 HTML 您可以使用jQuery.prototype.offset和Array.prototype.sort方法。以下代码段根据元素的左侧位置对集合进行排序: $('#b1').click(function() { $('div').sort(function(a, b) {

我有三个(可拖动的)div,可以放在屏幕上的任何位置。我需要的是,在拖动div之后,根据其左侧位置获得顺序(即最左侧的div应首先出现在列表中)。如何在jQuery中实现这一点?在我的尝试中,我总是得到原始订单

HTML


您可以使用
jQuery.prototype.offset
Array.prototype.sort
方法。以下代码段根据元素的左侧位置对集合进行排序:

$('#b1').click(function() {
    $('div').sort(function(a, b) {
        return $(a).offset().left > $(b).offset().left;
    }).each(function (i) {
        var div = $(this);
        alert(div.text() + ' is number ' + ++i);
    });
});

您可以使用
jQuery.prototype.offset
Array.prototype.sort
方法。以下代码段根据元素的左侧位置对集合进行排序:

$('#b1').click(function() {
    $('div').sort(function(a, b) {
        return $(a).offset().left > $(b).offset().left;
    }).each(function (i) {
        var div = $(this);
        alert(div.text() + ' is number ' + ++i);
    });
});
$('#b1').click(function() {
    $('div').sort(function(a, b) {
        return $(a).offset().left > $(b).offset().left;
    }).each(function (i) {
        var div = $(this);
        alert(div.text() + ' is number ' + ++i);
    });
});