繁体   English   中英

排序后保持相同的数字顺序(Footable)

[英]Keeping the same numerical order after sorting (Footable)

Standart桌脚。 许多列。 排序后如何保持相同的数字顺序?

原版的:

id | Book     | Views
---------------------
1  | Book 1   | 3493
2  | Book 2   | 3792
3  | Book 3   | 4022

按视图(DESC)排序后:

id | Book     | Views
---------------------
3  | Book 3   | 4022
2  | Book 2   | 3792
1  | Book 1   | 3493

但是我需要这个:

id | Book     | Views
---------------------
1  | Book 3   | 4022
2  | Book 2   | 3792
3  | Book 1   | 3493

目标是ID在排序后必须始终为1,2,3(但在分页之后则不必如此)

我相信您需要将视图与数据分开一点。 我将说明如何使用Arrays

假设我们有一个3个对象的arr数组,其中包含我们的书本。

testtest2都在相同的数据上进行迭代,但是只有test会显示在您想要的庄园中。 这是因为它不是使用数据的ID进行显示,而是使用迭代索引。 希望这可以将您带向正确的方向。

 var arr = [{ id: 1, name: "Book 1", views: 100 }, { id: 2, name: "Book 2", views: 200 }, { id: 3, name: "Book 3", views: 300 }]; function compare(a,b){ if(a.views > b.views) return -1; if(b.views > a.views) return 1; return 0; } arr.sort(compare); for(var i=0; i<arr.length; i++){ var elem = document.createElement("div"); elem.innerHTML = "id:"+(i+1) + " "; elem.innerHTML += "Name: "+arr[i].name + " "; elem.innerHTML += "Views: "+arr[i].views; console.log(arr[i].id); document.getElementById("test").appendChild(elem); } for(var i=0; i<arr.length; i++){ var elem = document.createElement("div"); elem.innerHTML = "id:"+arr[i].id + " "; elem.innerHTML += "Name: "+arr[i].name + " "; elem.innerHTML += "Views: "+arr[i].views; console.log(arr[i].id); document.getElementById("test2").appendChild(elem); } 
 <div id="test"></div> <div id="test2"></div> 

如果你正在尝试做的是每一行按顺序编号,jQuery的。每个()提供了一个迭代变量( ifunction(i) )。 行显示为i+1因为与大多数javascript元素一样,each()基于0。

$("#mytable tbody tr").each(function(i){
    $(this).find("td:first").text(i+1);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM