どうしたらいいのでしょうか?
後、このソースは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>
function RemoveTextBox(id) { var obj = document.getElementById(id); for(var ix = 0; ix < 6; ix++) obj.firstChild.removeNode(true); }
innerHTMLはお勧めできませんが、とりあえずこれで。
ただこれだと追加する要素の数が変わったときに問題があるので追加時にdiv要素などでくくって、最初に見つかったdiv要素を子要素ごと削除するようにするといいと思います。
IE6で確認済み。
ひとつずつ消したい場合はどうしたらいいでしょうか?