• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:domでの削除)

domでの削除

このQ&Aのポイント
  • 連続でチェックした場合に削除がうまくいかない
  • テーブル内のチェックボックスを使用して行を削除する方法について
  • テーブルから行を削除するためのJavaScriptコード

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

こんな風にすると、流れがわかりやすいかと <script> function test(){ var p=document.getElementById("tb1").getElementsByTagName("tbody")[0]; var n=p.firstChild; while(n){ var d=null; if(n.nodeName=="TR" && n.getElementsByTagName("input")[0].checked) d=n; n=n.nextSibling; if(d) p.removeChild(d); } } </script> <table border="1" id="tb1"> <tbody> <tr><td><input type="checkbox"></td><td>0</td></tr> <tr><td><input type="checkbox"></td><td>1</td></tr> <tr><td><input type="checkbox"></td><td>2</td></tr> <tr><td><input type="checkbox"></td><td>3</td></tr> <tr><td><input type="checkbox"></td><td>4</td></tr> <tr><td><input type="checkbox"></td><td>5</td></tr> <tr><td><input type="checkbox"></td><td>6</td></tr> <tr><td><input type="checkbox"></td><td>7</td></tr> <tr><td><input type="checkbox"></td><td>8</td></tr> <tr><td><input type="checkbox"></td><td>9</td></tr> </tbody> </table> <input type="button" value="削除" onclick="test();"><br>

asap1224
質問者

お礼

ありがとうございました。 大変参考になりました。

その他の回答 (4)

noname#84373
noname#84373
回答No.4

1と2です。まったく勘違いしてました!忘れてください。;_;

asap1224
質問者

お礼

またよろしくお願いします。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

調べてないけど、 削除する毎に行番号がずれこむのでうまくいかないのでは? for (var i = inputs.length; i>=0 ; i--) { こんな風に逆順で処理してみては?

asap1224
質問者

お礼

ご回答ありがとうございます。 上記では出来ませんでした。

noname#84373
noname#84373
回答No.2

訂正 if( obj.tagName =='INPUT' && obj.type=='checkbox' && (obj = parentSearch( obj, 'TR' )) ) obj.removeNode( obj );

noname#84373
noname#84373
回答No.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "?http://www.w3.org/TR/html4/strict.dtd"> <title>Calendar</title> <table border="1"> <tr><td><input type="checkbox">abc</td></tr> <tr><td><input type="checkbox">def</td></tr> <tr><td><input type="checkbox">ghi</td></tr> <tr><td><input type="checkbox">jkl</td></tr> <script type="text/javascript"> addEvent( document.body, 'click', chk ); function chk( evt ){ var obj = evt.target || evt.srcElement; if( obj = parentSearch( obj, 'TR' ) ) obj.removeNode( obj ); } function parentSearch(elementId, tagname){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; while( element.tagName != tagname ){ if(element.tagName == 'BODY') return false; element = element.parentNode; } return element; } function addEvent(elementId, evt, eventHandler, flag){ var element = ( typeof( elementId ) == 'string' )? document.getElementById( elementId ): elementId; element./*@cc_on @if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/evt, eventHandler, flag); } </script>

関連するQ&A