【问题标题】:Remove table row after clicking table row delete button单击表格行删除按钮后删除表格行
【发布时间】:2012-07-18 05:17:05
【问题描述】:

解决方案可以使用 jQuery 或纯 JavaScript。

我想在用户单击表格行单元格中包含的相应按钮后删除表格行,例如:

<script>
function SomeDeleteRowFunction() {
 //no clue what to put here?
}
</script>

<table>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
</table>

【问题讨论】:

    标签: javascript jquery html-table row


    【解决方案1】:

    您可以使用 jQuery click 而不是使用 onclick 属性,尝试以下操作:

    $('table').on('click', 'input[type="button"]', function(e){
       $(this).closest('tr').remove()
    })
    

    Demo

    【讨论】:

    • 它不起作用,我应该让你知道我正在动态添加我的表格行 $('.mytable tr:last').before(..... 这可能与是吗?
    • @like-a-trainee 是的,您应该委派活动,尝试更新的答案。
    【解决方案2】:

    你可以这样做:

    <script>
        function SomeDeleteRowFunction(o) {
         //no clue what to put here?
         var p=o.parentNode.parentNode;
             p.parentNode.removeChild(p);
        }
        </script>
    
        <table>
           <tr>
               <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
           </tr>
           <tr>
               <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
           </tr>
           <tr>
               <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
           </tr>
        </table>
    

    【讨论】:

    • 完美运行,YouMightNotNeedJquery 完成如此简单的任务。
    • @Siren 我很确定可以这样完成!部分谢谢你,你有一些链接可以解释你的parentNode(s) 链吗?我想正确理解您所做的“计算”。谢谢,我无法摆脱它。是的,我喜欢这个事实YouMightNotNeedJquery
    • 拯救了我的一天。最简单直接的答案。
    【解决方案3】:

    使用纯 Javascript:

    不需要将this 传递给SomeDeleteRowFunction()

    <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
    

    点击功能:

    function SomeDeleteRowFunction() {
          // event.target will be the input element.
          var td = event.target.parentNode; 
          var tr = td.parentNode; // the row to be removed
          tr.parentNode.removeChild(tr);
    }
    

    【讨论】:

      【解决方案4】:

      以下解决方案运行良好。

      HTML:

      <table>
        <tr>
          <td>
            <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
          </td>
        </tr>
        <tr>
          <td>
            <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
          </td>
        </tr>
        <tr>
          <td>
            <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
          </td>
        </tr>
      </table>
      

      JQuery:

      function SomeDeleteRowFunction(btndel) {
          if (typeof(btndel) == "object") {
              $(btndel).closest("tr").remove();
          } else {
              return false;
          }
      }
      

      我已经在 http://codebins.com/bin/4ldqpa9 上做了垃圾箱

      【讨论】:

        【解决方案5】:

        正如@gaurang171 提到的,我们可以使用 .closest() 来返回第一个祖先,或者最接近我们的删除按钮,然后使用 .remove() 来删除它。

        这就是我们如何使用 jQuery click 事件而不是使用 JavaScript onclick 来实现它。

        $(document).ready(function(){
             $("#myTable").on('click','.btnDelete',function(){
                 $(this).closest('tr').remove();
              });
          });
        table{
          width: 100%;
          border-collapse: collapse;
        }
        
        table td{
          border: 1px solid black;
        }
        button:hover{
          cursor: pointer;
        }
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <table id="myTable">
        <tr>
          <th>ID</th>
          <th >Name</th>
          <th>Age</th>
          <th width="1%"></th>
        </tr>
        
        <tr>
          <td >SSS-001</td>
          <td >Ben</td>
          <td >25</td>
          <td><button type='button' class='btnDelete'>x</button></td>
        </tr>
        
        <tr>
          <td >SSS-002</td>
          <td >Anderson</td>
          <td >47</td>
          <td><button type='button' class='btnDelete'>x</button></td>
        </tr>
        
        <tr>
          <td >SSS-003</td>
          <td >Rocky</td>
          <td >32</td>
          <td><button type='button' class='btnDelete'>x</button></td>
        </tr>
        
        <tr>
          <td >SSS-004</td>
          <td >Lee</td>
          <td >15</td>
          <td><button type='button' class='btnDelete'>x</button></td>
        </tr>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-05
          • 2016-01-04
          相关资源
          最近更新 更多