アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptのdeleteRowで削除したテーブルの行を再表示する方法を探しております。
下記ソース内reload.gifをクリックするとdeleteRowで消えた行をまとめて表示したいのですが何か良い方法は無いでしょうか?
(*)ブラウザの再表示は使えません。
<html>
<head>
<title></title>
<script language="JavaScript" type="text/JavaScript"><!--
function Delline(tablename,num){
document.getElementById (tablename).deleteRow(num);
}
//--></script>
</head>
<body>
<img src="reload.gif">
<table id="table1">
<tr onmouseover="asrow1 = this.rowIndex">
<td class="ChkTD41">ああ<img src="del.gif" onclick="Delline('table1',asrow1)" />
<input type="text" name="a1">
</td>
</tr>
<tr onmouseover="asrow2 = this.rowIndex">
<td class="ChkTD41">いい<img src="del.gif" onclick="Delline('table1',asrow2)" />
<input type="text" name="b1">
</td>
</tr>
<tr onmouseover="asrow3 = this.rowIndex">
<td>うう<img src="del.gif" onclick="Delline('table1',asrow3)" />
<input type="text" name="c1">
</td>
</tr>
</table>
</body>
</html>

A 回答 (2件)

deleteRowは何も返さず、削除するだけなので


cloneNodeでコピーをとってから削除するか、
removeChildを使って削除する(removeChildは削除したノードを返す)
で、復元する時にはとっておいたノードをinsertRowで戻す。

削除したノードとその位置の保存とかその復元とか…なんか面倒なんで、
#1さんのおっしゃるように、styleを変更し、
ついでに配下のinput(等)のdisabledもtrueにしておいて、
復元する時にはstyleを戻すと同時にdisabledも戻すようしたほうが楽かも。

この回答への補足

ありがとうございました。
わざわざ行自体を削除するのではなく
input disabled と CSSの視覚効果を利用して
INPUTさせない処理に変更いたしました。
質問に対する答えが全て正解では無いということを痛感いたしました。
お忙しいところ柔軟な発想を持って回答いただいたお二人に感謝いたします。

補足日時:2008/01/15 17:25
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
すっかり凝り固まった頭になってしまっていて根本的な目的を見失っていました。
確かに本来の目的がPOSTさせないであるならば
input disabled を使うのがセオリーですね。。。
完全にはまってしまって行操作以外の脳が有りませんでした。
早々に書き直してみます。

お礼日時:2008/01/15 15:48

表示非表示したいだけならdelしないでstyleで display:none にしたら良いんじゃないかな


戻す時はblockかinline(元の要素による)にすれば出てくるよ

http://www.tohoho-web.com/js/style.htm
    • good
    • 0
この回答へのお礼

早々のレスポンス感謝いたします。
なるほど!CSSと言う手が!と言う事でソースを書いてみたのですが。
削除された行のフォームをPOSTしないと言う前提で作っているのでCSSで制御するだけでは、残念ながら情報はPOSTされてしまいました。

お礼日時:2008/01/15 15:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!