如果我有几个股利:
<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);