0

HTMLテーブルがあります。この表では、最後の列にリンクがあります (id="delete_row" を使用)。各リンクを抽出しようとしていますが、機能していません。それに関するいくつかの投稿を見て、スペルの問題である可能性があることを知りましたが、すべてを2回確認しましたが、まだうまくいきません. これが私のコードです:

var tbl = document.getElementById('my_table'); 
for (var i = 0 ;i<tbl.rows.length-1; i++) { // for each row
        row = tbl.rows[i];
        row.getElementById('delete_row').className="other_classname";
}

ただし、このコードはエラーを返します。

キャッチされていない TypeError: オブジェクト #<HTMLTableRowElement> にはメソッド 'getElementById' がありません

何が間違っているのでしょうか?

4

4 に答える 4

0

コメントに加えて、各行の最後のセルにアクセスするには、次を置き換えます。

row.getElementById('delete_row').className="other_classname";

と:

var len = document.getElementById("my_table").rows[i].cells.length;
document.getElementById("my_table").rows[i].cells[len - 1].className="other_classname";
于 2013-01-15T11:34:07.620 に答える
0

HTML全体のIDは一意でなければならないと思います。ID を複数回使用しています。これが問題である可能性があります。したがって、 のclass代わりにと の代わりにID関数を使用すると、問題が解決する場合があります。getElementsByClassNamegetElementByID

于 2013-01-15T11:29:01.077 に答える
0

ID にはクラス構造を使用する必要があります。ボタンで行を追加し、X リンクで削除するとします。

<input type="button" value="add" id="btnAddRow">

<table id="customFields" align="center" cellspacing="0" cellpadding="0" border="0">
    <tr class="HeaderRow"><td colspan="7"></td></tr>
</table>

これは、ハンドルの追加および削除プロセスの JavaScript コードです。

$("#btnAddRow").click(function () {
        counter += 1;
        $("#customFields").show();
        $("#customFields").append('<tr valign="top"><td> ' + counter + '</td>' + '<td>' + '<a href="javascript:void(0);" class="removeRow">Delete</a></td></tr>');
    });

    $("#customFields").on('click', '.removeRow', function () {
        var rowId = $(this).parent().parent().index() - 1;
        $(this).parent().parent().remove();

        if ($('#customFields tr').length == 2) {
            $("#customFields").hide();
        }
    });

お分かりのように、動的なプロセスの方が便利です。

于 2016-11-09T06:14:20.537 に答える