最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript实现表格排序

来源:动视网 责编:小采 时间:2020-11-27 20:31:13
文档

JavaScript实现表格排序

JavaScript实现表格排序:<SCRIPT LANGUAGE="JavaScript"> var dom = (document.getElementsByTagName) true : false; var ie5 = (document.getElementsByTagName && document.all) true : false; var arrowUp, arrowDown; if (ie5 dom) initSort
推荐度:
导读JavaScript实现表格排序:<SCRIPT LANGUAGE="JavaScript"> var dom = (document.getElementsByTagName) true : false; var ie5 = (document.getElementsByTagName && document.all) true : false; var arrowUp, arrowDown; if (ie5 dom) initSort


<SCRIPT LANGUAGE="JavaScript">
var dom = (document.getElementsByTagName) ? true : false;
var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var arrowUp, arrowDown;
if (ie5 || dom)
initSortTable();
function initSortTable() {
arrowUp = document.createElement("SPAN");
var tn = document.createTextNode("↑");
arrowUp.appendChild(tn);
arrowUp.className = "arrow";
arrowDown = document.createElement("SPAN");
var tn = document.createTextNode("↓");
arrowDown.appendChild(tn);
arrowDown.className = "arrow";
}
function sortTable(tableNode, nCol, bDesc, sType) {
var tBody = tableNode.tBodies[0];
var trs = tBody.rows;
var trl= trs.length;
var a = new Array();
for (var i = 0; i < trl; i++) {
a[i] = trs[i];
}
var start = new Date;
window.status = "Sorting data...";
a.sort(compareByColumn(nCol,bDesc,sType));
window.status = "Sorting data done";
for (var i = 0; i < trl; i++) {
tBody.appendChild(a[i]);
window.status = "Updating row " + (i + 1) + " of " + trl +
" (Time spent: " + (new Date - start) + "ms)";
}
// check for onsort
if (typeof tableNode.onsort == "string")
tableNode.onsort = new Function("", tableNode.onsort);
if (typeof tableNode.onsort == "function")
tableNode.onsort();
}
function CaseInsensitiveString(s) {
return String(s).toUpperCase();
}
function parseDate(s) {
return Date.parse(s.replace(/-/g, /));
}
function toNumber(s) {
return Number(s.replace(/[^0-9.]/g, ""));
}
function Percent(s) {
return Number(s.replace("%", ""));
}
function compareByColumn(nCol, bDescending, sType) {
var c = nCol;
var d = bDescending;
var fTypeCast = String;
if (sType == "Number")
fTypeCast = Number;
else if (sType == "Date")
fTypeCast = parseDate;
else if (sType == "CaseInsensitiveString")
fTypeCast = CaseInsensitiveString;
else if (sType == "Percent")
fTypeCast = Percent;
return function (n1, n2) {
if (fTypeCast(getInnerText(n1.cells[c])) < fTypeCast(getInnerText(n2.cells[c])))
return d ? -1 : +1;
if (fTypeCast(getInnerText(n1.cells[c])) > fTypeCast(getInnerText(n2.cells[c])))
return d ? +1 : -1;
return 0;
};
}
function sortColumnWithHold(e) {
var el = ie5 ? e.srcElement : e.target;
var table = getParent(el, "TABLE");
var oldCursor = table.style.cursor;
var oldClick = table.onclick;
table.style.cursor = "wait";
table.onclick = null;
var fakeEvent = {srcElement : e.srcElement, target : e.target};
window.setTimeout(function () {
sortColumn(fakeEvent);
table.style.cursor = oldCursor;
table.onclick = oldClick;
}, 100);
}
function sortColumn(e) {
var tmp = e.target ? e.target : e.srcElement;
var tHeadParent = getParent(tmp, "THEAD");
var el = getParent(tmp, "TD");
if (tHeadParent == null)

文档

JavaScript实现表格排序

JavaScript实现表格排序:<SCRIPT LANGUAGE="JavaScript"> var dom = (document.getElementsByTagName) true : false; var ie5 = (document.getElementsByTagName && document.all) true : false; var arrowUp, arrowDown; if (ie5 dom) initSort
推荐度:
标签: 表格 实现 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top