Javascript 删除使用一个按钮选中的表行

Javascript 删除使用一个按钮选中的表行,javascript,html,css,html-table,Javascript,Html,Css,Html Table,正如标题所示,我创建了一个表,我正在用列表填充该表,并且在该表的每个元素旁边都有一个复选框。最后,我有一个按钮标记为删除。我想在实际删除操作中附加该按钮 按钮的代码(位于另一个表中): 删除 下表: <table ID="plist" border="0" cellpadding="0" cellspacing="0" datasrc="#clicklist" style="WIDTH: 380px">

正如标题所示,我创建了一个表,我正在用列表填充该表,并且在该表的每个元素旁边都有一个复选框。最后,我有一个按钮标记为删除。我想在实际删除操作中附加该按钮

按钮的代码(位于另一个表中):



删除
下表:

<table ID="plist" border="0" cellpadding="0" cellspacing="0" datasrc="#clicklist"
                        style="WIDTH: 380px">
                        <tr>
                            <td id="projline" width="100%" align="left" valign="middle"
 style="margin-left: 16px;">
                                <input type="checkbox" name="AAA"/>
                                <font size="3" face="Arial">
                                    <a id="proj" href="urn:a">
                                        <span datafld="Name" 

style="margin-left: 20px; line-height: 26px;"></span>
                                    </a>
                                </font>
                            </td>
                        </tr>
                    </table>

JS中的rowDelete函数:

function deleteRow(tableID) {
      try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;

        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked)
            {
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
        }catch(e)
{
            alert(e);
        }
    }
函数deleteRow(tableID){
试一试{
var table=document.getElementById(tableID);
var rowCount=table.rows.length;

对于(var i=0;i您必须首先创建一个适当的表。该表在HTML5和HTML4中无效,按钮需要位于表内。请阅读此内容

当我从一行中选择一个复选框并按下delete按钮时,我得到一个对象错误,我认为这意味着JS代码中有一些内容是空的或不被理解的

我不知道从哪里开始…看看JS,您正试图通过引用或任何一种方式来定位行,您收到的模糊错误消息是因为您必须将DOM中的元素作为对象引用。在您的情况下,有几种方法可以这样做,例如:

  • tr
    需要通过它们是什么来引用:
    标签名

    • var所有标签
      =

    • 现在
      所有标签都是

请查看演示并提出问题,因为我无法列出错误和需要解决的问题,因为这需要几个小时。演示的样式不是主题的一部分,我只是使用它,因为它是我用于表的默认样式。表的结构与JS一样重要。源代码如下f已被广泛注释。如果您有任何进一步的问题,请毫不犹豫地询问

片段


德洛
第十{
颜色:#FFF;
背景:#2C7EDB;
填充:10px;
文本对齐:居中;
垂直对齐:中间对齐;
}
.x tr:n个孩子(奇数){
背景色:#333;
颜色:#FFF;
}
.x tr:n个孩子(偶数){
背景色:#D3E9FF;
颜色:#333;
}
.x td{
边框样式:实心;
边框宽度:1px;
边框颜色:#264D73;
填充物:5px;
文本对齐:左对齐;
垂直对齐:顶部;
位置:相对位置;
}
第十天:第一个孩子{
边框左上半径:6px;
}
最后一个孩子{
边框右上角半径:6px;
}
.x tbody tr:最后一个孩子th:第一个孩子{
边框左下半径:6px;
}
.x t车身tr:最后一个孩子td:最后一个孩子{
边框右下半径:6px;
}
th{
宽度:30%;
}
th:第一种{
宽度:10%;
}
桌子{
宽度:80%;
}
A.
B
C
函数delRows(tableID){
//1 |取函数的参数并将其作为id引用。
var table=document.getElementById(tableID);
//2 | getElementsByTagName()[0]imk_将找到带有标记的第一个†元素。
/*†您可以使用[0]指定第一个标记,[1]指定第二个标记,等等。它是所有标记的直接父级,因此我们希望引用它*/
var tb=table.getElementsByTagName('tbody')[0];
//3 |收集已签入名为“已选中”的节点列表的所有复选框。
/*querySelectorAll³类似于类固醇上的getElementBy*。它接受选择器作为引用的目标,语法类似于CSS或jQuery对象$(选择器)内部。请注意“:checked”⁴ 伪选择器*/
var checked=document.querySelectorAll('input[type=“checkbox”]:checked');
//4 |将所有输入收集到名为“行”的节点列表中。
/*还记得我们在步骤2中引用了变量tb吗*/
var rows=tb.querySelectorAll('tr');
//5 |从步骤3开始迭代检查节点列表。
/*处理数组和类似数组的对象时,需要使用“for循环”进行迭代(或循环)⁵ 90%的时间*/
对于(变量i=0;ifunction deleteRow(tableID) {
      try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;

        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked)
            {
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
        }catch(e)
{
            alert(e);
        }
    }