[英]Sorting Jquery Table that JSON data appended via jQuery
我想按以下顺序对要排序的表进行排序。 我使用 JQuery 表来显示 JSON 数据。 我尝试使用 tablesorter 插件,但未能配置它。 有什么办法可以对这个表进行排序。
JSON数据
{
"Product":"APIM",
"Day01":"Success",
"Day02":"Aborted",
"Day03":"Failed",
"Day04":"Failed",
"Day05":"Failed",
"Day06":"Failed",
"Day07":"Success"
},
{
"Product":"AppFactory",
"Day01":"Aborted",
"Day02":"Success",
"Day03":"Success",
"Day04":"Success",
"Day05":"Success",
"Day06":"Success",
"Day07":"Success"
},
追加数据 (dataBind.js)
$.post("/portal/controllers/apis/test.jag", {
action: "getData"
}, function(data) {
var result = JSON.parse(data);
console.log("----------------------------------start----------------------------");
var Day = result[result.length - 1].Days;
$("#tableid").append("<thead><tr><th> Product </th> <th >" + Day[0].substring(5, 11) + "</th> <th>" + Day[1].substring(5, 11) + "</th> <th>" + Day[2].substring(5, 11) + "</th><th>" + Day[3].substring(5, 11) + "</th><th>" + Day[4].substring(5, 11) + "</th><th>" + Day[5].substring(5, 11) + "</th><th> Current </th><th> Failed Components </th><th> Failed Duration </th></tr></thead>");
for (var i = 0; i < result.length; i++) {
$("#tableid").append("<tbody><tr><td>" + result[i].product + "</td><td><img src='images/" + result[i].Day01 + ".png' /></td><td><img src='images/" + result[i].Day02 + ".png' /><td><img src='images/" + result[i].Day03 + ".png' /></td><td><img src='images/" + result[i].Day04 + ".png' /></td><td><img src='images/" + result[i].Day05 + ".png' /></td><td><img src='images/" + result[i].Day06 + ".png' /></td><td><img src='images/" + result[i].Day07 + ".png' /></td><td>" + result[i].Failed.Component + "</td><td>" + result[i].Failed.Duration + "</td></tr></tbody>");
}
console.log("----------------------------------End Table----------------------------");
});
HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Build Data Table</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<script language="javascript" type="text/javascript" src="js/jquery.js"></script>
<script language="javascript" type="text/javascript" src="js/dataBind.js"></script>
</head>
<body style="height: 1100px;">
<div class="CSSTableGenerator" >
<table id = "tableid">
</table>
</div>
</body>
</html>
只需将Array.prototype.sort
与自定义比较函数一起应用:
var sortOrder = ['Failed', 'Aborted', 'Success']; // <--- Look here
$.post("/portal/controllers/apis/test.jag", {
action: "getData"
}, function(data) {
var result = JSON.parse(data);
var Day = result[result.length - 1].Days;
/* Look here: */
result = result.sort(function(a, b) {
return sortOrder.indexOf(a.Day07) - sortOrder.indexOf(b.Day07);
});
/* ---------- */
$("#tableid").append("<thead><tr><th> Product </th> <th >" + Day[0].substring(5, 11) + "</th> <th>" + Day[1].substring(5, 11) + "</th> <th>" + Day[2].substring(5, 11) + "</th><th>" + Day[3].substring(5, 11) + "</th><th>" + Day[4].substring(5, 11) + "</th><th>" + Day[5].substring(5, 11) + "</th><th> Current </th><th> Failed Components </th><th> Failed Duration </th></tr></thead>");
for (var i = 0; i < result.length; i++) {
$("#tableid").append("<tbody><tr><td>" + result[i].product + "</td><td><img src='images/" + result[i].Day01 + ".png' /></td><td><img src='images/" + result[i].Day02 + ".png' /><td><img src='images/" + result[i].Day03 + ".png' /></td><td><img src='images/" + result[i].Day04 + ".png' /></td><td><img src='images/" + result[i].Day05 + ".png' /></td><td><img src='images/" + result[i].Day06 + ".png' /></td><td><img src='images/" + result[i].Day07 + ".png' /></td><td>" + result[i].Failed.Component + "</td><td>" + result[i].Failed.Duration + "</td></tr></tbody>");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.