1

我的 .aspx 页面中有一个 html 表,如下所示:

  <table id="quotationsListTable" class="quoteTbl" width="100%" border="1">
  <tr>
    <th></th>
    <th>REF</th>
    <th>Name</th>
    <th>Arrival</th>
    <th>Time</th>
    <th>Departure</th>
    <th>Time</th>
    <th>Curr</th>
    <th>Sale</th>
    <th>Cost</th>
  </tr>
  <tr>
    <td><input type="checkbox" name="chk"/></td>
    <td> 1 </td>
    <td><input type="text" style="width: 50px" /> </td>
    <td><input type="text" style="width: 150px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
    <td> <input type="text" style="width: 50px"/> </td>
  </tr>
  </table>

我还有一个 javascript 函数,用于删除表中的所有行,按元素 ID 调用我的“quotationsListTable”。

保留在单独的 .js 文件中的 javascript 函数如下:

deleteAllrows('quotationsListTable');

function deleteAllrows(tableID) {
    try {
        var table = document.getElementByID(tableID);
        var rowCount = table.rows.length;

        for (var i = 1; i < rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            table.deleteRow(i);
            rowCount--;
            i--;


        }
    } catch (e) {
        alert(e);
    }
}

手头的问题是我的 js 函数无法通过 id 检索表,抛出的错误消息是“未定义”。

4

3 回答 3

3

document.getElementById注意小d

var table = document.getElementById(tableID);

https://developer.mozilla.org/en-US/docs/DOM/document.getElementById

于 2013-05-15T11:57:02.820 回答
1

我建议您包含 jquery 库并删除单行的行.. 检查这个小提琴http://jsfiddle.net/SamirAdel/DyXHt/

deleteAllrows('quotationsListTable');

function deleteAllrows(tableID) {
   $("#"+tableID+"tr:gt(0)").remove()
}
于 2013-05-15T12:10:35.147 回答
0

您应该在页面内容准备好后设置您的功能。并且请将您的“getElementByID”更改为“getElementById”,D um 小写。尝试使用jQuery,是一种简单的方法。

看:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
  $().ready(function(){                
    deleteAllrows();

    function deleteAllrows() {
      try {
          var table = document.getElementById('quotationsListTable');
          alert(table);
          var rowCount = table.rows.length;

          for (var i = 1; i < rowCount; i++) {
              var row = table.rows[i];
              var chkbox = row.cells[0].childNodes[0];
              table.deleteRow(i);
              rowCount--;
              i--;


          }
      } catch (e) {
          alert(e);
      }
    }        
  });
</script>
于 2013-05-15T12:08:10.000 回答