这一段代码他是使用的html对象。当循环后会出现某些td的parent对象已经被更改了,因此会出现这种情况。
建议将排序后的数组的innerHTML存放到临时变量里面,再进行循环对td、tr赋值即可。
下面是js代码。赶紧给分吧,呵呵
<script language="javascript">
var tr=new Array()//表格中所有行的集合
var td=new Array()//表格中指定列的集会
var a
function px_zm(zhi){ //按某列的值进行行的排序
var tbody=$("tbody")
for(var i=0i<tbody.rows.lengthi++)
{
tr[i]=tbody.rows[i]
td[i]=tr[i].cells[zhi]
}
for(var i=0i<td.lengthi++)
{
for(j=ij<td.lengthj++)
{
if(td[i].innerHTML<td[j].innerHTML)
{
a=td[i]
td[i]=td[j]
td[j]=a
}
}
}
var trTempArray = new Array()
for(var b=0b<4b++){
var tdTempArray = new Array()
for(var c=0c<4c++){
// 将一行的td内容保存到tdTempArray当中。
tdTempArray[c] = td[b].parentNode.cells[c].innerHTML
}
// 将一行内容保存到trTempArray。
trTempArray[b] = tdTempArray
}
// 循环对表格内容重新赋值
for(var b=0b<4b++)
{
for(var c=0c<4c++){
tr[b].cells[c].innerHTML=trTempArray[b][c]
}
}
}
function $(id){
return document.getElementById(id)
}
</script>
"-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript">
function orderli(){
var d = document.getElementById("dli")
var lis = d.getElementsByTagName("li")//获取div先所以li元素
var liids = []//定义数组存储li的id用
for(var i=0,j=lis.lengthi<ji++){
liids.push(lis[i].id)
}
liids.sort()//数组升序排序
for(var i=0,j=liids.lengthi<ji++){
d.getElementsByTagName("ul")[0].appendChild(document.getElementById(liids[i]))
}
}
</script>
</head>
<body>
<button type="button" value="order" onclick="javascript:orderli()">order</button>
<div id="dli">
<ul>
<li id="11">11html代码</li>
<li id="33">33html代码</li>
<li id="22">22html代码</li>
<li id="21">21html代码</li>
<li id="20">20html代码</li>
</ul>
</div>
</body>
</html>
1.如图,一个没有经过固定操作的电子表格,当随着表格被拖动或滚动,需要被固定的首行或首列的信息也跟着滚动消失了。 2.首先打开excel文档,假设我们需要让表格的前两行内容在表格滚动时固定在表格顶部,即第3行与第4行不变,如图所示。