返回信息流一个表格,用javascript写了个排序函数,用onclick调用,点击每一列的标题即可进行排序。
现在的问题是,对某一列的单元格的内容运用a href链接后就排不了序了。
求解?跟排序函数有关?
这是一条镜像帖。来源:北邮人论坛 / www-technology / #10984同步于 2010/9/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
排序和链接覆盖问题
gaoshoupei
2010/9/10镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
贴代码吧
【 在 gaoshoupei (Inter) 的大作中提到: 】
: 一个表格,用javascript写了个排序函数,用onclick调用,点击每一列的标题即可进行排序。
: 现在的问题是,对某一列的单元格的内容运用a href链接后就排不了序了。
: 求解?跟排序函数有关?
: ...................
额,排序函数下面
function sortTable(sTableId,iCol,sDataType){
var oTable=document.getElementById(sTableId);
var oTbody=oTable.tBodies[0];
var colDataRows=oTbody.rows;
var aTRs=new Array();
for(var i=0;i<colDataRows.length;i++){
aTRs.push(colDataRows[i]);
}
if(oTable.sortCol==iCol)
{
aTRs.reverse();
}
else{
aTRs.sort(generateCompareTRs(iCol,sDataType));
}
var oFragment=document.createDocumentFragment();
for(var i=0;i<aTRs.length;i++){
oFragment.appendChild(aTRs[i]);
}
oTbody.appendChild(oFragment);
oTable.sortCol=iCol;
};
function generateCompareTRs(iCol,sDataType){
return function compareTRs(oTR1,oTR2){
var vValue1=convert(oTR1.cells[iCol].firstChild.nodeValue,sDataType);
var vValue2=convert(oTR2.cells[iCol].firstChild.nodeValue,sDataType);
if(vValue1<vValue2){
return -1;
}
else if(vValue1>vValue2){
return 1;
}
else{
return 0;
}
};
};
function convert(sValue,sDataType){
switch(sDataType){
case "int":return parseInt(sValue);
case "float": return parseFloat(sValue);
case "date":return new Date(Date.parse(sValue));
default:return sValue.toString();
}
};
表格的列标题调用<td width = "100" onclick="sortTable('Table', $i)" style="cursor:pointer">标题题目</td>
表格的内容如果是<td width="100"><a href = "testbed_detail.php">具体内容</a></td>就排不了序,但是把 a href去掉是可以排的
【 在 xw2423 的大作中提到: 】
: 贴代码吧
: 【 在 gaoshoupei (Inter) 的大作中提到: 】
: : 一个表格,用javascript写了个排序函数,用onclick调用,点击每一列的标题即可进行排序。
: ...................
generateCompareTRs这个函数有问题呗..
【 在 gaoshoupei (Inter) 的大作中提到: 】
: 额,排序函数下面
: function sortTable(sTableId,iCol,sDataType){
: var oTable=document.getElementById(sTableId);
: ...................
如果obj.nodeType是element ,obj.nodeValue是null
所以 compareTRs函数里面
function getFTextNode(node){
return (node.nodeType==1)?getFTextNode(node.firstChild):node;
}
oTR1 = getFTextNode(oTR1.cells[iCol]);
var vValue1=convert(oTR1.nodeValue,sDataType);
oTR2同理
【 在 gaoshoupei (Inter) 的大作中提到: 】
: 额,排序函数下面
: function sortTable(sTableId,iCol,sDataType){
: var oTable=document.getElementById(sTableId);
: ...................
学习了。。。谢谢
话说一星期的新手问个问题,那些表格里面元素的各种父子关系去哪查啊
借了本书上面啥都没有
【 在 xw2423 的大作中提到: 】
: 如果obj.nodeType是element ,obj.nodeValue是null
: 所以 compareTRs函数里面
: function getFTextNode(node){
: ...................
http://www.w3school.com.cn/htmldom/dom_obj_table.asp
【 在 gaoshoupei (Inter) 的大作中提到: 】
: 学习了。。。谢谢
: 话说一星期的新手问个问题,那些表格里面元素的各种父子关系去哪查啊
: 借了本书上面啥都没有
: ...................
额
好东西,多谢
【 在 xw2423 的大作中提到: 】
: http://www.w3school.com.cn/htmldom/dom_obj_table.asp
: 【 在 gaoshoupei (Inter) 的大作中提到: 】
: : 学习了。。。谢谢
: ...................