<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;
 }
 }
 }
 
 }

解决方案 »

  1.   

    将待输入的项目保留一套即可。然后输入后添加到表格,之后排序。<body>
    <table border="1" bordercolor="#33CCCC" cellspacing="0" cellpadding="5">
      <tbody>
      <tr>
      <th> 姓名</th>
      <th>  <a href="javascript:void();" onclick="getTable();">年龄</a>  </th>
      <th> 籍贯</th>
      </tr>  <tr>
      <td><input type="text" name="name" /></td>
      <td><input type="text" name="age" />  <!-- by theforever_csdn 碧海情天 --> <input type="button" onclick="addToTb();" value="添加" />
    </td>
      <td><input type="text" name="address" /></td>
      </tr>  <tr>
      <td>碧海情天</td>
      <td>25</td>
      <td>上海</td>
      </tr>
      <tr>
      <td>theforever</td>
      <td>55</td>
      <td>上7海</td>
      </tr>
      <tr>
      <td>CSDN</td>
      <td>15</td>
      <td>上海</td>
      </tr>
      <tr>
      <td>赵亮</td>
      <td>26</td>
      <td>上海</td>
      </tr>
      </tbody>
    </table>
    </body>
    <script>
    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;
          }
        }
      }
    }
    // by theforever_csdn 碧海情天
    function addToTb(){
      var newRow=document.getElementsByTagName("table")[0].insertRow();
      newRow.insertCell().innerText=document.getElementsByName("name")[0].value;
      newRow.insertCell().innerText=document.getElementsByName("age")[0].value;
      newRow.insertCell().innerText=document.getElementsByName("address")[0].value;
      document.getElementsByName("name")[0].value="";
      document.getElementsByName("age")[0].value="";
      document.getElementsByName("address")[0].value="";
    }
    </script>
      

  2.   

      document.getElementsByName("address")[0].value="";
      document.getElementsByName("name")[0].focus();}
    </script>
      

  3.   

    另外,排序的函数写得不对。是按文本排序的。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;
          }
        }
      }
    }
      

  4.   

    Lz试试这样,直接使用Array.sort()去排序
    table布局操作起来还是觉得很别扭。
    <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>