- ベストアンサー
domでの削除
- 連続でチェックした場合に削除がうまくいかない
- テーブル内のチェックボックスを使用して行を削除する方法について
- テーブルから行を削除するためのJavaScriptコード
- みんなの回答 (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>
その他の回答 (4)
1と2です。まったく勘違いしてました!忘れてください。;_;
お礼
またよろしくお願いします。
- steel_gray
- ベストアンサー率66% (1052/1578)
調べてないけど、 削除する毎に行番号がずれこむのでうまくいかないのでは? for (var i = inputs.length; i>=0 ; i--) { こんな風に逆順で処理してみては?
お礼
ご回答ありがとうございます。 上記では出来ませんでした。
訂正 if( obj.tagName =='INPUT' && obj.type=='checkbox' && (obj = parentSearch( obj, 'TR' )) ) obj.removeNode( obj );
<!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>
お礼
ありがとうございました。 大変参考になりました。