gpt4 book ai didi

javascript - 寻找一个javascript解决方案来重新排序div

转载 作者:行者123 更新时间:2023-12-01 02:35:08 26 4
gpt4 key购买 nike

我在页面中有一些div显示相同种类的不同内容,例如优惠,现在优惠有结束时间,还有发布时间,如果用户想按结束时间或发布时间订购,他们应该重新订购。

我正在寻找一个可以做到这一点的 JavaScript 解决方案,Ext JS 或 JQuery 下的任何特定库都可以工作

这是这些 div 的样子

<div data-sortunit="1" data-sort1="40" data-sort2="156" data-sort3="1"
data-sort4="1317620220" class="item">
</div>

<div data-sortunit="2" data-sort1="30" data-sort2="116" data-sort3="5"
data-sort4="1317620220" class="item">
</div>

<div data-sortunit="3" data-sort1="10" data-sort2="157" data-sort3="2"
data-sort4="1317620220" class="item">
</div>

所以我希望能够根据 data-sortN 对这些 div 进行排序,N 是一个整数

最佳答案

编辑:好的,现在您已经提供了一些 HTML,下面是 javascript 代码,它将按所需的列号对特定 HTML 进行排序:

function sortByDataItem(containerID, dataNum) {
var values = [];
$("#" + containerID + " .item").each(function(index) {
var item = {};
item.index = index;
item.obj = this;
item.value = $(this).data("sort" + dataNum);
values.push(item);
});
values.sort(function(a, b) {return(b.value - a.value);});
var container = $("#" + containerID);
for (var i = 0; i < values.length; i++) {
var self = $(values[i].obj);
self.detach();
container.prepend(self);
}
return;
}


$("#sort").click(function() {
var sortValue = $("#sortColumn").val();
if (sortValue) {
sortValue = parseInt(sortValue, 10);
if (sortValue && sortValue > 0 && sortValue <= 3) {
sortByDataItem("container", sortValue);
return;
}
}
$("#msg").show(1).delay(5000).fadeOut('slow');
});

您可以在 jsFiddle 中看到它的工作原理:http://jsfiddle.net/jfriend00/JG32X/

<小时/>

由于您没有为我们提供继续进行的 HTML,因此我制作了自己的 HTML 并向您展示了如何使用 jQuery 进行排序:

HTML:

<button id="sort">Sort</button><br>
<div id="productList">
<div class="row"><div class="productName">Popcorn</div><div class="price">$5.00</div></div>
<div class="row"><div class="productName">Peanuts</div><div class="price">$4.00</div></div>
<div class="row"><div class="productName">Cookie</div><div class="price">$3.00</div></div>
<div class="row"><div class="productName">Beer</div><div class="price">$5.50</div></div>
<div class="row"><div class="productName">Soda</div><div class="price">$4.50</div></div>
</div>

Javascript(页面加载后运行):

$("#sort").click(function() {
var prices = [];
// find all prices
$("#productList .price").each(function(index) {
var str = $(this).text();
var item = {};
var matches = str.match(/\d+\.\d+/);
if (matches && matches.length > 0) {
// parse price and add it to the prices array
item.price = parseFloat(matches[0]);
item.row = $(this).closest(".row").get(0);
item.index = index;
prices.push(item);
}
});
// now the prices array has all the prices in it
// sort it using a custom sort function
prices.sort(function(a, b) {
return(a.price - b.price);
});
// now pull each row out and put it at the beginning
// starting from the end of the prices list
var productList = $("#productList");
for (var i = prices.length - 1; i >= 0; i--) {
var self = $(prices[i].row);
self.detach();
productList.prepend(self);
}
});

并且,一个 jsFiddle 显示了它的实际效果:http://jsfiddle.net/jfriend00/vRdrA/ .

关于javascript - 寻找一个javascript解决方案来重新排序div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com