2

テーブルから入力要素を削除したい。JavaScript でそれらを削除する方法がわかりませんでした。

<table><tbody><tr>
<td><input id="c11" value=" " size="1" style="border-width: 0px;" type="text"></input></td>
<td><input id="c12" value=" " size="1" style="border-width: 0px;" type="text"></input></td>
</tr>
</tbody>
</table>
4

6 に答える 6

1
document.getElementById('c11').outerHTML =  "";
于 2012-12-12T16:52:05.513 に答える
1

You can do that :

var inputs = document.getElementsByTagName('input');
while (inputs.length) inputs[0].parentNode.removeChild(inputs[0]);

If you have your table element, you could also use myTable.getElementsByTagName('input');.

Demonstration

于 2012-12-12T16:48:00.900 に答える
0

Jqueryを使用している場合

.remove() を使用する

$("#yourtableid tr").remove();

削除した後でも将来の使用のためにデータを保持したい場合は、 .detach() を使用できます

$("#yourtableid tr").detach();
于 2012-12-12T16:52:41.380 に答える
0

このコードを試してください

 function removeRow(r)
    {
         var fo = "foo";
         var ido = r.id.substring(3,r.id.length-1);
         for(i=1;i<=3;i++)
         {
            document.getElementById(fo+id0+i).remove();
         }
         document.getElementById(fo+ido+5).nextSibling.remove();  
         document.getElementById(fo+ido+5).remove();
    }
于 2016-05-02T10:58:12.880 に答える
-1

個人的には、jQuery にアクセスできない場合は、親要素に ID を与えてからこれを行います

var els = document.findElementById('tableId').childNodes.getElementByTagName('input');
for( var i = 0; i < els.length; i++){
    els[i].removeNode(true);
}

または、@dystroy が removeNode は IE でのみ使用可能であると指摘したため、ブラウザとの完全な互換性のためにコードを次のようなものに置き換えることもできます。

var els = document.getElementById('tableId').getElementsByTagName('input');
while( els.length ){
    els[0].parentNode.removeChild(els[0]);
}​

そのようなものがうまくいくはずです。正直なところ、私はjQueryを使用します。はるかに簡単です。

于 2012-12-12T16:55:56.007 に答える