こちらの質問の続きです

http://q.hatena.ne.jp/1389220772

リンク先の以下のjavascriptで、チェックが入ってないチェックボックスの行を消しています

function exec2() {
var checks = document.getElementsByTagName("INPUT");
for (var i = 0 ; i < checks.length ; ++i) {
if (checks[i].type == "checkbox" && ! checks[i].checked) {
checks[i].parentNode.parentNode.style.display = "none";
}
}
}

上記のjavascriptで消した行を再表示したいのですが
その場合は<table>タグ全体
checks[i].parentNode.parentNode.style.display = "block";
を適応したいのですが、その場合どのようなプログラムを書けばいいでしょうか?
よろしくお願いします

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/01/20 07:34:07
  • 終了:2014/01/27 07:35:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4462ベストアンサー獲得回数18412014/01/20 08:49:44

ポイント300pt

こんな感じの関数を呼べば良いと思います。

function re_disp() {
    var tables = document.getElementsByTagName("TABLE");
    for (var i = 0 ; i < tables.length ; ++i) {
        var rows = tables[i].getElementsByTagName("TR");
        for (var j = 0 ; j < rows.length ; ++j) {
            rows[j].style.display = "";
        }
    }
}

消したのは TR タグの要素なので、それを探して CSS の display をデフォルトに戻しています。
いきなり TR を getElementsByTagName() メソッドで探しても良いのですが、何となく TABLE を探してから、その中にある TR を探すようにしてみました。

TR のデフォルトの display は、"block" ではなく "table-row" なので、"block" を入れるのではなく、空文字列か "table-row" を設定することになります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません