【问题标题】:Trying to delete a row in a table based on cell value using Jquery尝试使用Jquery根据单元格值删除表中的一行
【发布时间】:2015-03-13 13:01:04
【问题描述】:

我正在尝试删除 jquery 表中的一行。 每行都有一个复选框作为其第一个单元格。 单击删除按钮时,它应该只删除选中复选框的行。以下是我正在尝试的代码

function deleteRow(tableID) {
        var tableData = document.getElementById(tableID);
        var tabId = '#' + tableID + ' tr';
        var rowcount = $(tabId).length;         
        for ( var i = 0; i < rowcount; i++) {
            var chkbox = $(tableIDAct).children('td').eq(0).is(':checked');
                if (null != chkbox && true == chkbox) {
                    tableData.deleteRow(i);
                    rowcount--;
                    i--;
                }
        }
    }

在这里我无法逐行迭代表。 建议我 谢谢

【问题讨论】:

  • tableIDAct 是什么?
  • tableIDAct 和 .deleteRow() 均无效。

标签: jquery html


【解决方案1】:

问题可能是您在 td 对象上检查 is(':checked') 而不是输入

var chkbox = $(tabId).eq(i)
    .children('td').eq(0)
    .children('input[type=checkbox]')
    .is(':checked');

http://jsfiddle.net/9fr2x93k/

【讨论】:

  • 在上面的链接中它工作正常,但在我的代码中它说 tableData.deleteRow(i) 不是一个函数。那么是否有任何依赖关系
  • 我只加了jQuery;请注意,您将函数声明为function deleteRow,我将其更改为var deleteRow = function,并将其放在&lt;body&gt; 内的&lt;script&gt; 标记中
  • 另外,我把你的$(tableIDAct)改成了$(tabId).eq(i)
【解决方案2】:

我认为你有这个用处

document.getElementById("myTable").deleteRow(0);

你可以一个一个删除

   <table id="myTable">
      <tr>
        <td>cell 1</td>
        <td>cell 2</td>
      </tr>
      <tr>
        <td>cell 3</td>
        <td>cell 4</td>
      </tr>
    </table>
    <br> 

    <button onclick="myFunction()">Try it</button>

    <script>
    function myFunction() {
        document.getElementById("myTable").deleteRow(0);
    }
    </script>

如果更详细的话

http://mrbool.com/how-to-add-edit-and-delete-rows-of-a-html-table-with-jquery/26721

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多