在jQuery中基于属性“数据排序”对div进行排序?

如果我有几个股利:

<div data-sort='1'>div1</div>

<div data-sort='4'>div4</div>

<div data-sort='8'>div8</div>

<div data-sort='12'>div12</div>

<div data-sort='19'>div19</div>

我动态创建div:

<div data-sort='14'>div1</div>

<div data-sort='6'>div1</div>

<div data-sort='9'>div1</div>

如何才能使它们仅按顺序排序到已加载的div中,而不必重新加载所有div?

我认为我需要在屏幕上构建一个所有div的数据排序值的数组,然后查看新div的位置,但是我不确定这是否是最佳方法。

回答:

使用这个功能

   var result = $('div').sort(function (a, b) {

var contentA =parseInt( $(a).data('sort'));

var contentB =parseInt( $(b).data('sort'));

return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;

});

$('#mylist').html(result);

您可以在添加新的div后立即调用此函数。

如果要在div中保留javascript事件,请不要像上面的示例一样使用html replace。而是使用:

$(targetSelector).sort(function (a, b) {

// ...

}).appendTo($container);

以上是 在jQuery中基于属性“数据排序”对div进行排序? 的全部内容, 来源链接: utcz.com/qa/410867.html

回到顶部