我对元素的排序和排列有问题。首先,我需要按一些值(例如价格,日期,名称)对元素进行排序,然后根据此值在页面上应用元素的布局。我发现了很多插件和排序功能,但它们只是改变了排列下元素的值。我不知道如何排序元素,然后根据排序值改变它们的位置。
例如我有html结构:
<div id="page-wrap>
<ul>
<li class="first">
<p class="price">2500</p>
</li>
<li class="second">
<p class="price">4300</p>
</li>
<li class="third">
<p class="price">1800</p>
</li>
<li class="fourth">
<p class="price">3871</p>
</li>
</ul> </div>
结果应该是(例如按最低价格排序和移动元素):
<div id="page-wrap">
<ul>
<li class="third">
<p class="price">1800</p>
</li>
<li class="fisrt">
<p class="price">2500</p>
</li>
<li class="fourth">
<p class="price">3871</p>
</li>
<li class="second">
<p class="price">4300</p>
</li>
</ul></div>
正如你所看到的,我希望以最低价格改变元素的整体排列,而不仅仅是价值。
如果某位大师知道如何通过jquery或javascript做到这一点,我将非常感谢他。
感谢您的回答
答案 0 :(得分:5)
不使用插件,这应该有效:
function comparePrice(a, b) {
return (parseInt($(a).find(".price").text(), 10) - parseInt($(b).find(".price").text(), 10));
}
$("li").sort(comparePrice).appendTo("#page-wrap ul");
答案 1 :(得分:0)
我认为这种插入排序方法会改变你的对象位置:
http://www.tomgreenaway.com/2009/01/jquery-list-insertion-sort-plugin/
我认为你必须根据自己的需要调整它,因为你想要对p
内的价格进行排序。