提问者:小点点

如何在单击按钮时从DOM中有效地删除元素?


我有一个,它包含几个,每个都填充了一些从MySQL检索的数据。 我添加了一个delete按钮,当单击该按钮时,我希望永久删除特定数据()。 它不必从数据库或服务器的文件夹中删除,只需永久地消失即可,这样它就不会在下次刷新时再次出现。

我试了这么多不同的方法,但似乎没有一个奏效。 有人可以看看这个问题吗?

这是我试过的。

<tbody>
   <?php
      $i = 1;
      while ($row = mysqli_fetch_array($result)) {
          ?>
   <tr>
      <td><?php echo $i++; ?></td>
      <td><?php echo $row['filename']; ?></td>
      <td><a href="uploads/<?php echo $row['filename']; ?>" target="_blank">View</a></td>
      <td><a href="uploads/<?php echo $row['filename']; ?>" download><i class = "fa fa-download"></i></a></td>
      <td id = "deleteData">
         <!--trying to delete the file: starts-->
         <button type="button" class="btn btn-danger btnDeleteData" onclick="deleteFile">Delete</button>
         <script> 
            $('.deleteFile').on('click', function () {
            $('td#deleteData').remove();      
              });                                       
         </script>
         <!--trying to delete the file: ends-->
      </td>
   </tr>
   <?php } ?>
</tbody>

共1个答案

匿名用户

在PHP中构建了之后,需要向'delete'按钮添加一个onclick-event侦听器。 单击按钮时,需要删除最接近的tr,例如。

null

document.querySelectorAll('.delete-row').forEach(button => {
  button.addEventListener('click', function() {
    this.closest('tr').remove();
  });
});
<table>
  <tr>
    <td>Row 1</td>
    <td><button class="delete-row">Delete</button></td>
  </tr>
  <tr>
    <td>Row 2</td>
    <td><button class="delete-row">Delete</button></td>
  </tr>
  <tr>
    <td>Row 3</td>
    <td><button class="delete-row">Delete</button></td>
  </tr>
  <tr>
    <td>Row 4</td>
    <td><button class="delete-row">Delete</button></td>
  </tr>
</table>