当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JScript 寫 sortNode

Javascript
给初学者提供几本学习js值得看的书
Javascript----文件操作
Vml+Js算法:完成5个小球在网页运动(碰壁返回)的游戏,详细注释
Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
Dhtml+Js算法:5个小球运动的简化版,变通实现更简单的飞行的图片
Vml+Dhtml:小小的页面效果,叫它"淘气鬼"好了
判断客户浏览器是否支持cookie
几种常用的表单输入判断
CSDN无限级树数据库版(ASP+ACCESS)
JavaScript 寫遊戲 : 俄羅斯方塊
JavaScript 寫遊戲 : 搬吖
JavaScript 遊戲 : 貪吃蛇
JavaScript 寫時鍾日曆
VML:经典的图片叠加效果(灰色调)
一个简单的仿xp的js下拉菜单
JScript 寫 sortNode
关于javascript中数组元素删除问题的讨论
IE中非模式对话框(showModelessDialog)应用
Dhtml:用ondrag事件简单的实现鼠标拖动物件.
对WebUI技术感兴趣的说

Javascript 中的 JScript 寫 sortNode


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 66 ::
收藏到网摘: n/a

JScript 利用 Array.sort() 和 Nodes.swap()
來完成重新排列。

但速度比XML的sortNode慢。(-_-メ)

 

 

 

 

 

<!--
http://dwin.net

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>