为什么这个'addRow'javascript不能在IE中运行?

时间:2013-06-18 15:53:45

标签: javascript internet-explorer firefox

我有以下javascript,它会在表格的底部添加一个新行。

它在Firefox中运行良好,但它在IE(版本8)中不起作用。

据我所知,没有明显的错误。

任何想法都非常有用!

function addRow() {

  // locate the last row in the table
  var table = document.getElementById("approversTable");

  var rows = document.getElementsByTagName("tr");
  var rowToClone;
  for (var i=0; i<rows.length; i++) {
    if (rows[i].id != "") {
      rowToClone = rows[i];
    }
  }

  // clone the row
  var clone = rowToClone.cloneNode(true);
  var rowId = Math.floor(Math.random()*100000);
  clone.id = rowId;
  // add the new row to the table
  table.appendChild(clone);

}

1 个答案:

答案 0 :(得分:3)

您应该直接选择表tbody元素而不是表。

   function addRow() {
     var table = document.getElementById("approversTable");
     var tbody = table.tbodies[0];
     var rows = document.getElementsByTagName("tr");
      var rowToClone;
      for (var i=0; i<rows.length; i++) {
        if (rows[i].id != "") {
          rowToClone = rows[i];
        }
      }

      // clone the row
      var clone = rowToClone.cloneNode(true);
      var rowId = Math.floor(Math.random()*100000);
      clone.id = rowId;
      // add the new row to the table
      tbody.appendChild(clone);
   }

更多信息:http://www.w3schools.com/jsref/coll_table_tbodies.asp