2025-05-25

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
        <title>Insert title here</title>
  <style type="text/css">
   input[type=text]{
    width:30px;
   }
  </style>
  <script type="text/javascript">
   /*
    * javascript中對表格的操作:創建表格 刪除行 刪除列 交換行 交換列
    */
   function creatTable(){
    //獲取頁面中原有的table
    var oldTable = document.getElementsByTagName("table")[0];
    if(oldTable != null)
     document.body.removeChild(oldTable);
    // 獲取行數和列數
    var rows = document.getElementById("creatRows").value;
    var cols = document.getElementById("creatCols").value;
    document.getElementById("creatRows").value = "";
    document.getElementById("creatCols").value = "";
   
    //創建Table標簽,設置屬性
    var table = document.createElement("table");
    table.setAttribute("border", "1");
    table.setAttribute("align", "center");
    table.setAttribute("width", "50%");
    table.setAttribute("cellpadding", "5");
    table.setAttribute("cellspacing", "0");
    //alert(table);
   
    //創建Tbody,添加到table中
    var tbody = document.createElement("tbody");
    table.appendChild(tbody);
   
    for(var i = 1; i <= rows; i++){
     //創建tr,添加到tbody中
     var tr = document.createElement("tr");
     tbody.appendChild(tr);
    
     for(var j = 1; j <= cols; j++){
      //創建td,設置td的文本,添加到tr中
      var td = document.createElement("td");
      td.innerHTML = i + ", " + j;
      tr.appendChild(td);
     }
    }
   
    //將table裝入body中
    document.body.appendChild(table);
   
   }
  
   function deleteRow(){
    //獲取行號
    var rows = document.getElementById("deleteRows").value;
    document.getElementById("deleteRows").value = "";
   
    //獲取頁面中要刪除的那個tr,如果不存在,給個提示
    var tr = document.getElementsByTagName("tr")[rows – 1];
    if(tr == null){
     alert("要刪除的不存在!");
     return;
    }
    //將tr刪除
    tr.parentNode.removeChild(tr);
   }
  
   function deleteCol(){
    //獲取要刪除的列數,刪除後,清空text的值
    var cols = document.getElementById("deleteCows").value;
    document.getElementById("deleteCows").value = "";
   
    //獲取所有的tr,刪除每個tr中的cols列
    var trARR = document.getElementsByTagName("tr");
    for(var i = 0; i < trARR.length; i++){
     var td = trARR[i].childNodes[cols – 1];
     trARR[i].removeChild(td);
    }
   }
  
   function swapRow(){
    //獲取要交換的行號
    var row1 = document.getElementById("swapRow1").value;
    var row2 = document.getElementById("swapRow2").value;
    document.getElementById("swapRow1").value ="";
    document.getElementById("swapRow2").value = "";
   
    //獲取要交換的tr
    var trArr = document.getElementsByTagName("tr");
    var tr1 = trArr[row1 – 1];
    var tr2 = trArr[row2 – 1];
   
    //使用javascript寫好的交換方法
    //tr1.swapNode(tr2);
   
    var cloneTr = tr1.cloneNode(true); //交換位置,交換會失敗,替換後,會少一行
    tr2.parentNode.replaceChild(cloneTr, tr2); //???
    tr1.parentNode.replaceChild(tr2, tr1);
   
   }
  
   function swapCol(){
    // 獲取要交換的列號
    var cols1 = document.getElementById("swapCol1").value;
    var cols2 = document.getElementById("swapCol2").value;
    document.getElementById("swapCol1").value = "";
    document.getElementById("swapCol2").value = "";
   
    // 獲取所有TR, 循環遍歷所有TR
    var trArr = document.getElementsByTagName("tr");
    for(var x = 0; x < trArr.length; x++) {
     // 獲取要交換的TD
     var td1 = trArr[x].childNodes[cols1 – 1];  // 獲取TR的所有子節點
     var td2 = trArr[x].cells[cols2 – 1];   // 獲取TR中所有單元格
    
     // 交換
     td1.swapNode(td2);
    }
   }
  </script>
    </head>
    <body>
     創建的行數:<input type="text" id="creatRows"><br>
  創建的列數:<input type="text" id="creatCols"><br>
  <input type="button" value="創建表格" onclick="creatTable()"><br>
  <br>
  要刪除的行:<input type="text" id="deleteRows"><input type="button" value="刪除行" onclick="deleteRow()"><br>
  要刪除的列:<input type="text" id="deleteCows"><input type="button" value="刪除列" onclick="deleteCol()"><br>
  <br>
  要交換的行:<input type="text" id="swapRow1">, <input type="text" id="swapRow2"><input type="button" value="交換行" onclick="swapRow()"><br>
  要交換的列:<input type="text" id="swapCol1">, <input type="text" id="swapCol2"><input type="button" value="交換列" onclick="swapCol()"><br>
    </body>
</html>

 

摘自  代俊建的專欄 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *