`
zwt2001267
  • 浏览: 436016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS表格排序

阅读更多
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS表格排序美化版丨芯晴网页特效丨CsrCode.Cn</title>
</head>
<STYLE type=text/css>TABLE {
 BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid; border-spacing: 0px; cell-spacing: 0px
}
TD {
 PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
}
TH {
 PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap
}
TD.numeric {
 TEXT-ALIGN: right
}
TH {
 BACKGROUND-COLOR: #c0c0c0
}
TH.mainHeader {
 COLOR: #ffffff; BACKGROUND-COLOR: #808080; TEXT-ALIGN: left
}
TH A {
 COLOR: #000080; TEXT-DECORATION: none
}
TH A:visited {
 COLOR: #000080
}
TH A:active {
 COLOR: #800000; TEXT-DECORATION: underline
}
TH A:hover {
 COLOR: #800000; TEXT-DECORATION: underline
}
TR.alternateRow {
 BACKGROUND-COLOR: #e0e0e0
}
TD.sortedColumn {
 BACKGROUND-COLOR: #f0f0f0
}
TH.sortedColumn {
 BACKGROUND-COLOR: #b0b0b0
}
TR.alternateRow TD.sortedColumn {
 BACKGROUND-COLOR: #d0d0d0
}
</STYLE>
<SCRIPT type=text/javascript>
function sortTable(id, col, rev) {
  var tblEl = document.getElementById(id);
  if (tblEl.reverseSort == null) {
    tblEl.reverseSort = new Array();
    tblEl.lastColumn = 1;
  }
  if (tblEl.reverseSort[col] == null)
    tblEl.reverseSort[col] = rev;
  if (col == tblEl.lastColumn)
    tblEl.reverseSort[col] = !tblEl.reverseSort[col];
  tblEl.lastColumn = col;
  var oldDsply = tblEl.style.display;
  tblEl.style.display = "none";
  var tmpEl;
  var i, j;
  var minVal, minIdx;
  var testVal;
  var cmp;
  for (i = 0; i < tblEl.rows.length - 1; i++) {
    minIdx = i;
    minVal = getTextValue(tblEl.rows[i].cells[col]);
    for (j = i + 1; j < tblEl.rows.length; j++) {
      testVal = getTextValue(tblEl.rows[j].cells[col]);
      cmp = compareValues(minVal, testVal);
      if (tblEl.reverseSort[col])
        cmp = -cmp;
      if (cmp == 0  &&  col != 1)
        cmp = compareValues(getTextValue(tblEl.rows[minIdx].cells[1]),
                            getTextValue(tblEl.rows[j].cells[1]));
      if (cmp > 0) {
        minIdx = j;
        minVal = testVal;
      }
    }
    if (minIdx > i) {
      tmpEl = tblEl.removeChild(tblEl.rows[minIdx]);
      tblEl.insertBefore(tmpEl, tblEl.rows[i]);
    }
  }
  makePretty(tblEl, col);
  setRanks(tblEl, col, rev);
  tblEl.style.display = oldDsply;
  return false;
}
if (document.ELEMENT_NODE == null) {
  document.ELEMENT_NODE = 1;
  document.TEXT_NODE = 3;
}
function getTextValue(el) {
  var i;
  var s;
  s = "";
  for (i = 0; i < el.childNodes.length; i++)
    if (el.childNodes[i].nodeType == document.TEXT_NODE)
      s += el.childNodes[i].nodeValue;
    else if (el.childNodes[i].nodeType == document.ELEMENT_NODE  && 
             el.childNodes[i].tagName == "BR")
      s += " ";
    else
      s += getTextValue(el.childNodes[i]);
  return normalizeString(s);
}
function compareValues(v1, v2) {
  var f1, f2;
  f1 = parseFloat(v1);
  f2 = parseFloat(v2);
  if (!isNaN(f1)  &&  !isNaN(f2)) {
    v1 = f1;
    v2 = f2;
  }
  if (v1 == v2)
    return 0;
  if (v1 > v2)
    return 1
  return -1;
}
var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
var whtSpMult = new RegExp("\\s\\s+", "g");
function normalizeString(s) {
  s = s.replace(whtSpMult, " ");  // Collapse any multiple whites space.
  s = s.replace(whtSpEnds, "");   // Remove leading or trailing white space.
  return s;
}
var rowClsNm = "alternateRow";
var colClsNm = "sortedColumn";
var rowTest = new RegExp(rowClsNm, "gi");
var colTest = new RegExp(colClsNm, "gi");
function makePretty(tblEl, col) {
  var i, j;
  var rowEl, cellEl;
  for (i = 0; i < tblEl.rows.length; i++) {
   rowEl = tblEl.rows[i];
   rowEl.className = rowEl.className.replace(rowTest, "");
    if (i % 2 != 0)
      rowEl.className += " " + rowClsNm;
    rowEl.className = normalizeString(rowEl.className);
    for (j = 2; j < tblEl.rows[i].cells.length; j++) {
      cellEl = rowEl.cells[j];
      cellEl.className = cellEl.className.replace(colTest, "");
      if (j == col)
        cellEl.className += " " + colClsNm;
      cellEl.className = normalizeString(cellEl.className);
    }
  }
  var el = tblEl.parentNode.tHead;
  rowEl = el.rows[el.rows.length - 1];
  for (i = 2; i < rowEl.cells.length; i++) {
    cellEl = rowEl.cells[i];
    cellEl.className = cellEl.className.replace(colTest, "");
    if (i == col)
      cellEl.className += " " + colClsNm;
      cellEl.className = normalizeString(cellEl.className);
  }
}
function setRanks(tblEl, col, rev) {
  var i    = 0;
  var incr = 1;
  if (tblEl.reverseSort[col])
    rev = !rev;
  if (rev) {
    incr = -1;
    i = tblEl.rows.length - 1;
  }
  var count   = 1;
  var rank    = count;
  var curVal;
  var lastVal = null;
  while (col > 1  &&  i >= 0  &&  i < tblEl.rows.length) {
    curVal = getTextValue(tblEl.rows[i].cells[col]);
    if (lastVal != null  &&  compareValues(curVal, lastVal) != 0)
        rank = count;
    tblEl.rows[i].rank = rank;
    lastVal = curVal;
    count++;
    i += incr;
  }
  var rowEl, cellEl;
  var lastRank = 0;
  for (i = 0; i < tblEl.rows.length; i++) {
    rowEl = tblEl.rows[i];
    cellEl = rowEl.cells[0];
    while (cellEl.lastChild != null)
      cellEl.removeChild(cellEl.lastChild);
    if (col > 1  &&  rowEl.rank != lastRank) {
      cellEl.appendChild(document.createTextNode(rowEl.rank));
      lastRank = rowEl.rank;
    }
  }
}
</SCRIPT>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<!-- Offensive statistics table. -->
<TABLE cellSpacing=0 cellPadding=0 border=0>
  <THEAD>
  <TR>
    <TH class=mainHeader colSpan=11>NFL 2001 Offensive Stats</TH></TR>
  <TR>
    <TH style="TEXT-ALIGN: left">Rank</TH>
    <TH style="TEXT-ALIGN: left"><A title="Team Name" 
      onclick="this.blur(); return sortTable('offTblBdy', 1, false);" 
      href="#">Team</A></TH>
    <TH><SPAN title="Games Played">Gms</SPAN></TH>
    <TH><A title="Total Yards" 
      onclick="this.blur(); return sortTable('offTblBdy',  3, true);" 
      href="#">Yds</A></TH>
    <TH><A title="Yards Per Game" 
      onclick="this.blur(); return sortTable('offTblBdy',  4, true);" 
      href="#">Yds/G</A></TH>
    <TH><A title="Total Rushing Yards" 
      onclick="this.blur(); return sortTable('offTblBdy',  5, true);" 
      href="#">RuYds</A></TH>
    <TH><A title="Rushing Yards Per Game" 
      onclick="this.blur(); return sortTable('offTblBdy',  6, true);" 
      href="#">RuYds/G</A></TH>
    <TH><A title="Total Passing Yards" 
      onclick="this.blur(); return sortTable('offTblBdy',  7, true);" 
      href="#">PaYds</A></TH>
    <TH><A title="Passing Yards Per Game" 
      onclick="this.blur(); return sortTable('offTblBdy',  8, true);" 
      href="#">PaYds/G</A></TH>
    <TH><A title="Total Points Scored" 
      onclick="this.blur(); return sortTable('offTblBdy',  9, true);" 
      href="#">Pts</A></TH>
    <TH><A title="Points Per Game" 
      onclick="this.blur(); return sortTable('offTblBdy', 10, true);" 
      href="#">Pts/G</A></TH></TR></THEAD>
  <TBODY id=offTblBdy>
   <TR class=alternateRow>
    <TD class=numeric></TD>
    <TD>Atlanta</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>5070</TD>
    <TD class=numeric>316.9</TD>
    <TD class=numeric>1773</TD>
    <TD class=numeric>110.8</TD>
    <TD class=numeric>3297</TD>
    <TD class=numeric>206.1</TD>
    <TD class=numeric>291</TD>
    <TD class=numeric>18.2</TD></TR>
  <TR>
    <TD class=numeric></TD>
    <TD>Baltimore</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>4773</TD>
    <TD class=numeric>318.2</TD>
    <TD class=numeric>1598</TD>
    <TD class=numeric>106.5</TD>
    <TD class=numeric>3175</TD>
    <TD class=numeric>211.7</TD>
    <TD class=numeric>284</TD>
    <TD class=numeric>18.9</TD></TR>
  <TR class=alternateRow>
    <TD class=numeric></TD>
    <TD>Buffalo</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>5137</TD>
    <TD class=numeric>321.1</TD>
    <TD class=numeric>1686</TD>
    <TD class=numeric>105.4</TD>
    <TD class=numeric>3451</TD>
    <TD class=numeric>215.7</TD>
    <TD class=numeric>265</TD>
    <TD class=numeric>16.6</TD></TR>
  <TR>
    <TD class=numeric></TD>
    <TD>Carolina</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>4254</TD>
    <TD class=numeric>265.9</TD>
    <TD class=numeric>1372</TD>
    <TD class=numeric>85.8</TD>
    <TD class=numeric>2882</TD>
    <TD class=numeric>180.1</TD>
    <TD class=numeric>253</TD>
    <TD class=numeric>15.8</TD></TR>
<TR>
    <TD class=numeric></TD>
    <TD>Dallas</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>4402</TD>
    <TD class=numeric>275.1</TD>
    <TD class=numeric>2184</TD>
    <TD class=numeric>136.5</TD>
    <TD class=numeric>2218</TD>
    <TD class=numeric>138.6</TD>
    <TD class=numeric>246</TD>
    <TD class=numeric>15.4</TD></TR>
  <TR class=alternateRow>
    <TD class=numeric></TD>
    <TD>Denver</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>4817</TD>
    <TD class=numeric>301.1</TD>
    <TD class=numeric>1877</TD>
    <TD class=numeric>117.3</TD>
    <TD class=numeric>2940</TD>
    <TD class=numeric>183.8</TD>
    <TD class=numeric>340</TD>
    <TD class=numeric>21.2</TD></TR>
  <TR>
    <TD class=numeric></TD>
    <TD>Detroit</TD>
    <TD class=numeric>16</TD>
    <TD class=numeric>4994</TD>
    <TD class=numeric>312.1</TD>
    <TD class=numeric>1398</TD>
    <TD class=numeric>87.4</TD>
    <TD class=numeric>3596</TD>
    <TD class=numeric>224.8</TD>
    <TD class=numeric>270</TD>
    <TD class=numeric>16.9</TD></TR>
</TBODY></TABLE>
</BODY></HTML>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics