暈。難道沒有玩Netscape了嗎????拜托幫幫忙啊。小弟急死啦!!!!
解决方案 »
- 如何用Ajax获得session里面的某个属性。
- js判断图片的大小急啊
- 刷新父页面
- 我写的一段代码关于JS建表的.不知道哪里有问题?请帮忙看看
- 关于运行的问题
- if(event&&event.srcElement&&event.srcElement.tagName=="SELECT")是什么意思?
- 这么小的一个问题----摆渡,GOOGLE都没有完美答案?????期待CSDN的高手。。。
- JS实现动画的机制
- 如何使用javascript来获得同一个Form下的多个按钮的名称(或name)???
- easyui tree选中问题
- 在线求教js打印问题,100分着急!!!!
- select问题:select的字体颜色我会 “动态” 改变,可是背景色,字的大小,或者怎样给字加粗呢?
第一次讀...
sort_key = 2;
ar = content1.sort(sort_desc);
for(v in ar)
在這建立數組1
//document.write(ar[v]+"<br/>");第二次讀sort_key = 3;
ar = 數組1.sort(sort_asc);
for(v in ar)
在這建立數組2
//document.write(ar[v]+"<br/>");第三次讀....sort_key = 4;
ar = 數組2.sort(sort_asc);
for(v in ar)
document.write(ar[v]+"<br/>");這樣的話應該可以得到想要的列表吧?但我不會建立那兩數組,希望大家幫幫忙吧,先謝了!
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script language="JavaScript">
<!--
content1 = new Array();
content1[0] = new Array("01","aaaaa","46","1","0");
content1[1] = new Array("02","bbbbb","8","1","1");
content1[2] = new Array("03","ccccc","10","1","0");
content1[3] = new Array("04","ddddd","11","2","0");
content1[4] = new Array("05","eeeee","15","2","0");
content1[5] = new Array("06","fffff","10","1","0");
content1[6] = new Array("07","ggggg","20","3","0");
content1[7] = new Array("08","hhhhh","32","3","0");
content1[8] = new Array("09","iiiii","41","2","0");
content1[9] = new Array("10","jjjjj","10","1","0");var sort_key = 0; // 列号
var ascending = true; //升序/降序function doSort(rowA, rowB){
var cellA = rowA[sort_key];
var cellB = rowB[sort_key];
//sort() 方法调用的函数要求 A>B, 返回 正数, A==B, 返回 0, A<B, 返回 负数
var polarity = 0 ;
if (cellA > cellB){
polarity = 1;
}else if (cellA == cellB){
polarity = 0;
}else{
polarity = -1;
}
//根据升序/降序调整
polarity = ascending ? polarity : -1*polarity; return polarity;
}function sort(){
var ar = content1; sort_key = 2 - 1; //js 中数组是从 0 开始的
ascending = false; //降序
ar = ar.sort(doSort); sort_key = 3 - 1;
ascending = true; //升序
ar = ar.sort(doSort); sort_key = 4 - 1;
ascending = true; //升序
ar = ar.sort(doSort); //document.write(ar[v]+"<br/>"); document.write("<Table width='50%' border=1>");
for(v in ar) {
document.write("<tr>");
for(var i=0; i<5; i++){
document.write("<td>"+ar[v][i]+"</td>");
}
document.write("<tr>");
}
document.write("<Table>");
}
//-->
</script>
<body onload="sort();"></body>
</html>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script language="JavaScript">
<!--
content1 = new Array();
content1[0] = new Array("01","aaaaa","46","1","0");
content1[1] = new Array("02","bbbbb","8","1","1");
content1[2] = new Array("03","ccccc","10","1","0");
content1[3] = new Array("04","ddddd","11","2","0");
content1[4] = new Array("05","eeeee","15","2","0");
content1[5] = new Array("06","fffff","10","1","0");
content1[6] = new Array("07","ggggg","20","3","0");
content1[7] = new Array("08","hhhhh","32","3","0");
content1[8] = new Array("09","iiiii","41","2","0");
content1[9] = new Array("10","jjjjj","10","1","0");var sort_string = ""; //需要排序的列的集合, 以逗号分开, 如果列号前面有负号, 代表DESC排序
//例如 3,2,-1 代表按照 第3,2,1列排序, 其中第1列为DESC排序
//注意列号是从0开始的function doSort(rowA, rowB){
var keys = sort_string.split(",");
var nA = ""; //nA 和 nB 保存代表该行在排序中的一个数字, 每位对应 sort_string 中的一列
var nB = ""; //例如 三个排序自动, sA = 100, sB=000, 那么说明两行比较时第一列 rowA 较大.
for (var i=0; i<keys.length; i++){
//获得 sort_string 中的列号, 以及是否DESC排序
var idx = keys[i];
var ascending = 1;
if (idx < 0){
idx = -1 * idx;
ascending = -1;
}
//比较两行数据中该列的值
var cellA = rowA[idx];
var cellB = rowB[idx];
if (cellA > cellB){
polarity = 1;
}else if (cellA == cellB){
polarity = 0;
}else{
polarity = -1;
}
polarity = ascending*polarity;
//确定 nA/nB
if(polarity>0){
nA = nA + "1";
nB = nB + "0";
}else if(polarity==0){
nA = nA + "0";
nB = nB + "0";
}else{
nA = nA + "0";
nB = nB + "1";
}
}
//alert("RowA("+rowA+"):["+nA+"], RowB("+rowB+"):["+nB+"]"); //sort() 方法调用的函数要求 A>B, 返回 正数, A==B, 返回 0, A<B, 返回 负数
if (nA > nB){
return 1;
}else if (nA == nB){
return 0;
}else{
return -1;
}
}function sort(){
sort_string = "3,2,-1";
var ar = content1.sort(doSort); document.write("<Table width='50%' border=1>");
for(v in ar) {
document.write("<tr>");
for(var i=0; i<5; i++){
document.write("<td>"+ar[v][i]+"</td>");
}
document.write("<tr>");
}
document.write("<Table>");
}
//-->
</script>
<body onload="sort();"></body>
</html>
sort_key = 2;
ar = content1.sort(sort_desc);
sort_key = 3;
ar = ar.sort(sort_asc);
sort_key = 4;
ar = ar.sort(sort_asc);
for(v in ar)
document.write(ar[v]+"<br/>");--------------------------------------------------------------
上面的排序方法,其實根本就沒有按我的要求來做,還是我自己犯了一個低級錯誤,現把正確的方法貼給大家參考參考。(在IE6、NetScape6.21、NetScape7.0、NetScape7.1通過)
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<link rel="stylesheet" href="style.css" type="text/css">
<script language="JavaScript">
<!--
content1 = new Array();
content1[0] = new Array("aaa","01","46","1","0");
content1[1] = new Array("bbb","02","18","1","1");
content1[2] = new Array("ccc","03","10","1","0");
content1[3] = new Array("ddd","04","10","1","0");
content1[4] = new Array("eee","05","15","2","0");
content1[5] = new Array("fff","06","17","1","0");
content1[6] = new Array("ggg","07","20","3","1");
content1[7] = new Array("hhh","08","32","3","0");
content1[8] = new Array("iii","09","41","2","0");
content1[9] = new Array("jjj","10","03","1","0");//組合排序
function solesort(a,b)
{
var num = a.length;
if (a[num-1]-b[num-1]!=0) //降序
return -(a[num-1]-b[num-1]);
if (a[num-2]-b[num-2]!=0) //升序
return a[num-2]-b[num-2];
if (a[num-3]-b[num-3]!=0) //降序
return -(a[num-3]-b[num-3]);
return a[num-4]-b[num-4]; //升序
}//打印結果
//先按下標4降序排列,再按下標3升序排列,再按下標2降序列,下標1判斷在前三種相同的情況下按原數據位置排列
ar = content1.sort(solesort);
for(v in ar)
document.write(ar[v]+"<br/>");
//-->
</script>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
</BODY>
</HTML>-------------------------------------------------------------------------------因為在實際中,排序的數組是按要求動態生成的,所以這個判斷需要將條件放到數組的后四位中才能起作用。