读书人

输入的数据如何不排序呢

发布时间: 2012-10-18 13:46:56 作者: rapoo

输入的数据怎么不排序呢?
<body>
<table border="1" bordercolor="#33CCCC" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th> 姓名</th>
<th>
<a href="#" onclick="getTable()">年龄</a>
</th>
<th> 籍贯</th>
</tr>
<!--
<tr>
<td><input type="text" name="name" /></td>
<td><input type="text" name="age" /></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><input type="text" name="name" /></td>
<td><input type="text" name="age" /></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><input type="text" name="name" /></td>
<td><input type="text" name="age" /></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><input type="text" name="name" /></td>
<td><input type="text" name="age" /></td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td><input type="text" name="name" /></td>
<td><input type="text" name="age" /></td>
<td><input type="text" name="address" /></td>
</tr>
--->


<tr>
<td>张三</td>
<td>25</td>
<td>上海</td>
</tr>
<tr>
<td>张5</td>
<td>55</td>
<td>上7海</td>
</tr>
<tr>
<td>张三</td>
<td>15</td>
<td>上海</td>
</tr>
<tr>
<td>张8三</td>
<td>26</td>
<td>上海</td>
</tr>

</tbody>
</table>
</body>
上面是html代码,
function getTable()
{
var tabNode=document.getElementsByTagName("table")[0];
var trows=tabNode.rows;
var arr=new Array();
var length=trows.length;
for(var x=1;x!=length;x++)
{
arr[x-1]=trows[x];
}
sortArr(arr);
var tbdNode=tabNode.childNodes[0];
for(var x=0;x<arr.length;x++)
{
tbdNode.appendChild(arr[x]);
}
}
function sortArr(arr)
{
var length=arr.length;
for(var x=0;x<length;x++)
{
for(var y=x+1;y<length;y++)
{
if(arr[x].cells[1].innerText>arr[y].cells[1].innerText)
{
var temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}

}

[解决办法]
另外,排序的函数写得不对。是按文本排序的。111会比2排得还靠前。应该转换成数字进行比较。


function sortArr(arr)
{
var length=arr.length;
for(var x=0;x<length;x++)
{
for(var y=x+1;y<length;y++)
{
if(Number(arr[x].cells[1].innerText)>Number(arr[y].cells[1].innerText)) {
var temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}

[解决办法]
Lz试试这样,直接使用Array.sort()去排序
table布局操作起来还是觉得很别扭。。。。

HTML code
<script type="text/javascript">var tableArry=new Array(),isSort=false;function tableInit(){    var o=document.getElementById('me').getElementsByTagName('tr');    if(o.length<3){return;}    for(var i=2;i<o.length;i++){        var td=o[i].getElementsByTagName('td');        var name=td[0].innerHTML,        age=td[1].innerHTML,        addr=td[2].innerHTML;        tableArry.push({name:name,age:age,addr:addr})    }}function clearTable(){    var o=document.getElementById('me').getElementsByTagName('tbody')[0];    var tr=o.getElementsByTagName('tr');    if(tr.length<3){return;}    var clearArry=new Array();    for(var i=2;i<tr.length;i++){        clearArry.push(tr[i]);    };    for(var j=0;j<clearArry.length;j++){        o.removeChild(clearArry[j]);    }}function sort1(){    tableArry.sort(function(a,b){return parseInt(a.age)-parseInt(b.age)});}function sort2(){    tableArry.sort(function(a,b){return parseInt(b.age)-parseInt(a.age)});}function sortTable(toggle){  clearTable();  if(toggle){    if(!isSort){sort1();isSort=true}else{sort2();isSort=false}  }else{    isSort?sort1():sort2();  };  var o=document.getElementById('me').getElementsByTagName('tbody')[0];  for(i=0;i<tableArry.length;i++){    var tr=document.createElement("tr");    var td=document.createElement('td');    td.innerHTML=tableArry[i].name;    tr.appendChild(td);    td=document.createElement('td');    td.innerHTML=tableArry[i].age;    tr.appendChild(td);        td=document.createElement('td');    td.innerHTML=tableArry[i].addr;    tr.appendChild(td);    o.appendChild(tr);  }}function addItem(){  var name=document.getElementById("name[]").value,  age=document.getElementById("age[]").value,  addr=document.getElementById("address[]").value;  if(name.length>0 && age.length>0 && addr.length>0){    tableArry.push({name:name,age:age,addr:addr});  }  sortTable(false);}window.onload=function(){    tableInit();}</script><table border="1" bordercolor="#33CCCC" cellspacing="0" cellpadding="5" id="me">  <tbody>  <tr>      <th>姓名</th>      <th><a href="javascript:void();" onclick="javascript:sortTable(true)">年龄</a>  </th>      <th>籍贯</th>  </tr>  <tr>      <td><input type="text" id="name[]" /></td>      <td><input type="text" id="age[]" /></td>      <td><input type="text" id="address[]" /><input type="button" onclick="addItem();" value="添加" /></td>  </tr>  <tr>    <td>姓名一</td>  <td>25</td>  <td>上海</td>  </tr>  <tr>    <td>姓名二</td>  <td>55</td>  <td>上7海</td>  </tr>  <tr>    <td>姓名三</td>  <td>15</td>  <td>上海</td>  </tr>  <tr>    <td>姓名四</td>  <td>26</td>  <td>上海</td>  </tr>  </tbody></table> 

读书人网 >JavaScript

热点推荐