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

Javascript
[原创]js 日期加红代码 适用于各种cms
[原创]javascript 改变字体大小方法集合
jsTree树控件(基于jQuery, 超强悍)[推荐]
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
jQuery live( type, fn ) 委派事件实现
javascript createElement()创建input不能设置name属性的解决方法
Jquery 表单取值赋值的一些基本操作
jquery select选中的一个小问题
网页里控制图片大小的相关代码
网页常用特效代码整理
网站上面有这种切换效果
tagName的使用,留一笔
图片按比例缩放函数
非常好的js代码
精彩图片推荐 渐隐渐现
左右图片循环滚动停顿一下后继续
popdiv
奇妙的Javascript图片放大镜
怎么用javascript进行拖拽
一个表格收缩展开的函数

Javascript 中的 JScript 寫 sortNode


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 219 ::
收藏到网摘: 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>