JScript 利用 Array.sort() 和 Nodes.swap()
來完成重新排列。
但速度比XML的sortNode慢。(-_-メ)
<!--
http://dwin
http://dewin.tk
Copyright(c) 1998-2004 dewin all rights reserved
Start 2003-09-18 15:50
Finish 2003-09-18 16:17
-->
<body>
<script>
/* create the table */
TRlength = 100
letter="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
str = "\
<table id=test style=''''>\
<tbody>\
<tr onclick=''if(event.srcElement!=this)sortNode(event.srcElement)''><td style=''background:#FF69B4''>Letter</td><td style=''background:#ADFF2F''>Name</td><td style=''background:#87CEFA''>Money</td></tr>\
</tbody>\
<tbody>"
for(i=0;i<TRlength;i++)
str += "<tr><td>"+letter.charAt(Math.floor(Math.random()*10000%62))+"</td><td>"+String.fromCharCode(Math.round(Math.random()*(40869-19968)+19968))+"</td><td>"+String(Math.random()).slice(2)+"</td></tr>"
str += "</tbody>\
</table>"
document.write(str)
ary = [];
oTR = test.childNodes[1].childNodes;
oTRorder = test.firstChild.firstChild.childNodes;
for(i=0, j=oTR.length; i<j; i++)//collect TR nodes in Array
ary[i] = oTR[i];
for(i=0, j=oTRorder.length; i<j; i++)
oTRorder[i].order = -1;
function sortNode(SortNode){
var time = new Date()
var tempa, tempb, oTD, orders
oTD = SortNode.sourceIndex-SortNode.parentElement.sourceIndex-1;//which TD we Click
orders = SortNode.order = -SortNode.order;
ary.sort(//sort the nodes here.
function(a,b){
tempa = a.childNodes[oTD].innerText;//you can use a.childNodes[oTD].innerText.length or other things to sort
tempb = b.childNodes[oTD].innerText;
temp = tempa<tempb?-orders:tempa==tempb?0:orders;
return temp;
}
)
for(i=0; i<oTR.length; i++)
oTR[i].swapNode(ary[i]);//swap TR nodes
alert(new Date()-time);
}
</script>
选择5ucms.org 选择未来
上一篇:5ucms模版,关于javascript中数组元素删除问题的讨论 下一篇:5ucms培训,一个简单的仿xp的js下拉菜单 |
|
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。 5ucms模版,JScript 寫 sortNode的关键词: |