挣扎着DOM元素

时间:2013-05-15 11:55:10

标签: javascript html dom

我的.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检索表,抛出的错误消息是'undefined'。

3 个答案:

答案 0 :(得分:3)

document.getElementById注意小d

var table = document.getElementById(tableID);

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

答案 1 :(得分:1)

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

deleteAllrows('quotationsListTable');

function deleteAllrows(tableID) {
   $("#"+tableID+"tr:gt(0)").remove()
}

答案 2 :(得分: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>