[英]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
数组,其中包含我们的书本。
test
和test2
都在相同的数据上进行迭代,但是只有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的。每个()提供了一个迭代变量( i
的function(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.