标题:武大学生成绩统计代码(FF测试通过) 出处:Felix021 时间:Tue, 20 Oct 2009 01:00:51 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1744 内容: 写了一段代码实现在页面上直接统计成绩的功能。 打开Firefox(注意,不支持IE6,原因是IE6的浏览器URL只支持到435个字符的js代码,IE8支持到2083,但是懒得测试了) 登录 http://202.114.74.198 OR http://202.114.74.199 点击:成绩与重修查询 -> 多科查询 或者直接打开 http://202.114.74.199/stu/query_score.jsp 然后将下列代码全部copy到页面的地址栏,回车,看到结果。 p.s. 默认情况下是先讲成绩分别以“先课程类型升序 再成绩降序”排序。可自行修改。 压缩版: javascript:var trs=new Array();trs=getData();sorttrs(10,1);sorttrs(9,0);display(trs);function sorttrs(col,di){var i,j,t;for(i=0;i trs[j+1][col]){t=trs[j];trs[j]=trs[j+1];trs[j+1]=t;}}else{if(trs[j][col]");document.writeln("公共选修: "+gx+"/"+gxx+"="+(gx/gxx)+"
");document.writeln("专业必修: "+zb+"/"+zbx+"="+(zb/zbx)+"
");document.writeln("专业选修: "+zx+"/"+zxx+"="+(zx/zxx)+"
");document.writeln("总学分: "+(gbx+gxx+zbx+zxx));document.writeln("");for(var i=0;i");for(var j=0;j'+td+'';}document.writeln("");}document.writeln("");}}function getData(){function countTDChilds(tr){var trc=tr.childNodes;var count=0;for(var i=0;i trs[j+1][col]) { t = trs[j]; trs[j] = trs[j+1]; trs[j+1] = t; } } else { if(trs[j][col] < trs[j+1][col]) { t = trs[j]; trs[j] = trs[j+1]; trs[j+1] = t; } } } } } function display(){ var gb = 0, gx = 0, zb = 0, zx = 0; /*g=公共 z=专业 b=必修 z=选修*/ var gbx = 0, gxx = 0, zbx = 0, zxx = 0; /*公共必修学分*/ for(var i = 1; i < trs.length; ++i){ var a = trs[i][8] * trs[i][10]; var b = new Number(trs[i][8]); switch(trs[i][9]) { case '公共必修': gb += a; gbx += b; break; case '公共选修': gx += a; gxx += b; break; case '专业必修': zb += a; zbx += b; break; case '专业选修': zx += a; zxx += b; break; } } document.writeln("\n\n 成绩<\/title>\n<\/head>\n<body>"); document.writeln("公共必修: " + gb + " / " + gbx + " = " + (gb/gbx) + "<br/>"); document.writeln("公共选修: " + gx + " / " + gxx + " = " + (gx/gxx) + "<br/>"); document.writeln("专业必修: " + zb + " / " + zbx + " = " + (zb/zbx) + "<br/>"); document.writeln("专业选修: " + zx + " / " + zxx + " = " + (zx/zxx) + "<br/>"); document.writeln("总学分: " + (gbx + gxx + zbx + zxx)); document.writeln("<table border=\"1\">"); for(var i = 0; i < trs.length; ++i){ document.writeln(" <tr>"); for(var j = 0; j < trs[i].length; ++j){ var td = trs[i][j]; if(i == 0){ td = '<b>' + td + '</b>'; } document.writeln(" <td>" + td + "</td>"); } document.writeln(" </tr>"); } document.writeln('</body>\n</html>'); } function getData(){ function countTDChilds(tr){ var trc = tr.childNodes; var count = 0; for(var i = 0; i < trc.length; ++i) { if(trc[i].tagName == "TD") count++; } return count; } function getTDChilds(tr){ var trc = tr.childNodes; var tds = new Array(); for(var i = 0; i < trc.length; ++i){ if(trc[i].tagName == "TD") tds.push(trc[i].innerHTML); } return tds; } var isIE = document.all?true:false; var frames = document.getElementsByTagName("iframe"); var doc = null; for(var i = 0; i < frames.length; ++i){ if (frames[i].name == "mainIFR"){ if(isIE){ doc=frames[i].document; }else{ doc = frames[i].contentWindow.document; } break; } } if(doc == null) doc = document; var tbl = doc.getElementsByTagName("table")[0]; var tb = null; for(var i = 0; i < tbl.childNodes.length; ++i){ var tb = tbl.childNodes[i]; if(tb.tagName == 'tbody') break; } var trs = new Array(); for(var i = 0; i < tb.childNodes.length; ++i){ var obj = tb.childNodes[i]; if(obj.tagName == 'TR'){ if(countTDChilds(obj) == 11){ trs.push(getTDChilds(obj)); } } } return trs; } Generated by Bo-blog 2.1.0
"+td+"