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

1

jquery ライブラリを含め、行を 1 行で削除することをお勧めします。このフィドルを確認してください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 に答える