Standart Footable桌子。很多专栏。 排序后如何保持相同的数字顺序?
原件:
RMS_Import
按视图(DESC)排序后:
LEFT JOIN RMS_Import ON Temp_LockedList.MATERIAL = RMS_Import.artnr
但我需要这个:
id | Book | Views
---------------------
1 | Book 1 | 3493
2 | Book 2 | 3792
3 | Book 3 | 4022
目标是在排序后ID必须始终为1,2,3(当然不是在寻呼之后)
答案 0 :(得分:0)
我认为您需要将您的观点与数据分开一点。我将使用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>
答案 1 :(得分:0)
如果您要做的就是按顺序编号每行,jQuery .each()会提供一个迭代变量(i
中的function(i)
)。行显示为i+1
,因为与大多数javascript元素一样,每个()都是从0开始的。
$("#mytable tbody tr").each(function(i){
$(this).find("td:first").text(i+1);
});