Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript删除html输入元素?_Javascript_Html - Fatal编程技术网

如何使用JavaScript删除html输入元素?

如何使用JavaScript删除html输入元素?,javascript,html,Javascript,Html,我想从表中删除输入元素。我想不出任何办法 通过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="bord

我想从表中删除输入元素。我想不出任何办法 通过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>

您可以这样做:

var inputs = document.getElementsByTagName('input');
while (inputs.length) inputs[0].parentNode.removeChild(inputs[0]);
如果有table元素,还可以使用
myTable.getElementsByTagName('input')

如果您使用

如果要保留数据以备将来使用,即使在删除数据之后,也可以使用.detach()


就个人而言,如果您无权访问jQuery,我只会给父元素一个id,然后这样做

var els = document.findElementById('tableId').childNodes.getElementByTagName('input');
for( var i = 0; i < els.length; i++){
    els[i].removeNode(true);
}
这样的办法应该行得通。老实说,我会使用jQuery。容易多了。

这是工作

document.getElementById('c11').val("");
document.getElementById('c12').val("");
试试这个代码

 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();
    }
函数删除程序(r)
{
var fo=“foo”;
var ido=r.id.substring(3,r.id.length-1);

对于(i=1;iPlain vanilla JavaScript或jQuery?removeNode的可能重复项仅存在于IE上。使用jQuery的remove()方法的更多原因是:)jQuery通常很有用,但您导入像jQuery这样的库并不是为了避免键入两行代码(请参阅我的答案)这不可能是原因。这将失败。你正在通过正在修改的实况列表执行前向迭代。每次删除元素时,列表从该点被重新索引。你是完全正确的。我稍微修改了它。但是,它降低了我认为是一个好的解决方案。但是目标不是给出。n确切的代码示例,而是向他展示他可能如何通过逻辑思考来解决问题,并给出一些javascript方法,使他能够做到这一点。是的。也许我应该精确地指出,随着列表的动态更新,您不能向另一个方向循环。但这并不能解决问题。他只需要列表中的输入表,从技术上讲,这将删除页面上的所有输入,因此假设这只是一个摘录而不是完整的html,这可能是不好的。@KyleRichter也许您还应该阅读我答案的最后一行。
var els = document.findElementById('tableId').childNodes.getElementByTagName('input');
for( var i = 0; i < els.length; i++){
    els[i].removeNode(true);
}
var els = document.getElementById('tableId').getElementsByTagName('input');
while( els.length ){
    els[0].parentNode.removeChild(els[0]);
}​
document.getElementById('c11').val("");
document.getElementById('c12').val("");
 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();
    }