2017-07-31 165 views
0

之前保存的順序,我需要你的幫助,我也有類似以下內容的一長串:jQuery的排序

<div id="works"> 
<div class="item" data-date="20160312">Item2</div> 
<div class="item" data-date="20170227">Item5</div> 
<div class="item" data-date="20051201">Item1</div> 
<div class="item" data-date="20010515">Item3</div> 
<div class="item" data-date="20100418">Item4</div> 
…. 
</div> 

我用下面的方法jquery sort list based on data attribute value按日期,類別的項目進行排序......但我需要在排序前保存最初的訂單。 理想的做法是,例如,創建一個將增加一個「數據起源」這樣的功能:

<div id="works"> 
<div class="item" data-origin="1" data-date="20160312">Item2</div> 
<div class="item" data-origin="2" data-date="20170227">Item5</div> 
<div class="item" data-origin="3" data-date="20051201">Item1</div> 
<div class="item" data-origin="4" data-date="20010515">Item3</div> 
<div class="item" data-origin="5" data-date="20100418">Item4</div> 
…. 
</div> 

你有一個解決方案? (我也使用infinitescroll加載了lite的延續,我也可以將這個「data-origin」添加到新元素中) 非常感謝!

+0

爲什麼,如果你已經使用了排序jQuery的解決方案沒有jQuery的標籤?使用['.each()'](https://api.jquery.com/each/)和['.data()']輕鬆完成的jQuery(https://api.jquery.com/data /) - > [jQuery學習中心](https://learn.jquery.com/) – Andreas

+0

沒有jQuery:['document.querySelectorAll()'](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelectorAll)+ ['NodeList.prototype.forEach()'](https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach)+ ['HTMLElement .dataset'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset) – Andreas

回答

0

$('.item').each(function(index){ $(this).data('origin-order', index) }) 
 

 
$('.item').each(function(index){ console.log($(this).data('origin-order')) })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="works"> 
 
<div class="item" data-date="20160312">Item2</div> 
 
<div class="item" data-date="20170227">Item5</div> 
 
<div class="item" data-date="20051201">Item1</div> 
 
<div class="item" data-date="20010515">Item3</div> 
 
<div class="item" data-date="20100418">Item4</div> 
 
</div>

+0

這是完美的! 對不起,我是一個初學者,我正在尋找更復雜的... 謝謝大家! – tartartartar