人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のスクリプトでRemoveTextBoxが動きません。
どうしたらいいのでしょうか?

後、このソースはIEで動きますか?
FireFoxではAddTextBoxの動作は確認しています。

<script language="JavaScript" type="text/javascript">
<!--
var IDNumber = 0; // text boxのID用

function AddTextBox(id) {
var obj = document.getElementById(id);
obj.innerHTML += "<input type=text name="+ id + IDNumber + "><input type=radio name=caller"+ id + IDNumber +">テスト完了<input type=radio name=ok"+ id + IDNumber +">日本語完了<br>";
IDNumber++;
}

function RemoveTextBox(id) {
var obj = document.getElementById(id);
obj.innerHTML = obj.innerHTML.replace(/<input((?:(?!type="text").)*?)type="text"[^>]*>テスト完了<input((?:(?!type="radio").)*?)type="text"[^>]*>日本語完了<input((?:(?!type="radio").)*?)type="text"[^>]*><br>/i, "");
}
// -->
</script>
<body>
<table border="1">
<tr>
<td>テスト項目</td>
<td><input type=button value=" add " onClick="AddTextBox('test')"></td>
<td id ="test9_a"><input type=button value=" del " onClick="RemoveTextBox('test')"></td>
<td id ="test"></td>
</tr>
</table>

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:BOX firefox IE スクリプト ソース
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Kenju
●60ポイント
function RemoveTextBox(id) {
 var obj = document.getElementById(id);
 for(var ix = 0; ix < 6; ix++)
 obj.firstChild.removeNode(true);
}

innerHTMLはお勧めできませんが、とりあえずこれで。

ただこれだと追加する要素の数が変わったときに問題があるので追加時にdiv要素などでくくって、最初に見つかったdiv要素を子要素ごと削除するようにするといいと思います。

IE6で確認済み。

◎質問者からの返答

ひとつずつ消したい場合はどうしたらいいでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ