javascript - 如何使用 jQuery 删除动态添加的行

标签 javascript jquery html

我通过克隆将行添加到我的表中。当用户单击“删除行”按钮时,每行的开头应出现一个复选框,选择该复选框后将删除该特定行。

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table border="0" cellspacing="1" cellpadding="1" id="dataTable" class="graphtable">
  <thead>
    <tr>
      <td class="headingalign" width="16%">Links</td>
      <td class="headingalign" width="32%">Desciption</td>
      <td class="headingalign" width="16%">Image</td>
      <td class="headingalign" width="16%">URL</td>
    </tr>
  </thead>
  <tbody>
    <tr id="id01" name="row">
      <td>


        <select type="select-one" id='fldsearch' class="objselect" name="fldsearch" onChange="disableField()">
          <option value="">Select</option>
          <option value="GDS">Guides</option>
          <option value="LOF">Latest Offers</option>
          <option value="TEM">Templates</option>
          <option value="VID">Videos</option>
        </select>
      </td>
      <td>
        <input id="flddesc" name="flddesc" maxlength="500" disabled="true" class="objinputtext" size="85" value="{//RESPONSE}" />

      </td>
      <td>
        <input id="fldimg" name="fldimg" maxlength="50" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}" />

      </td>
      <td>
        <input id="fldurl" name="fldurl" maxlength="15" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}" />

      </td>
    </tr>
  </tbody>
</table>
<div class="buttonarea">
  <ul>
    <li><input tabindex="6" id="Button3" value="Add New Row" class="Buttons" name="Button3" type="button" /></li>
  </ul>
  <ul>
    <li><input tabindex="6" id="Button4" value="Delete Row" class="delButtons" name="Button4" type="button" /></li>
  </ul>
</div>
$("#dataTable").on('click', '.delButtons', function () {
var $tr = $('#dataTable tbody tr:last');
$tr.remove();
});

任何帮助将不胜感激。谢谢

最佳答案

您可以尝试下面的代码,在单击删除按钮时添加复选框,并在单击新添加的复选框时删除行

$(function(){
   $('.delButtons').on('click', function(){
       $('#dataTable thead tr').each(function(){
          if($(this).find('.removeBtnHeader').length==0) {
            $(this).find('td:first').before('<td class="removeBtnHeader"></td>');
          }
       });
       $('#dataTable tbody tr').each(function(){
          if($(this).find('.removeBtn').length==0) {
            $(this).find('td:first').before('<td><input type="checkbox" class="removeBtn"></td>');
          }
       });
   });
   
   $(document).on('click', '.removeBtn', function(){
     $(this).closest('tr').remove();
   });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table border="0" cellspacing="1" cellpadding="1" id="dataTable" class="graphtable">
  <thead>
    <tr>
      <td class="headingalign" width="16%">Links</td>
      <td class="headingalign" width="32%">Desciption</td>
      <td class="headingalign" width="16%">Image</td>
      <td class="headingalign" width="16%">URL</td>
    </tr>
  </thead>
  <tbody>
    <tr id="id01" name="row">
      <td>


        <select type="select-one" id='fldsearch' class="objselect" name="fldsearch" onChange="disableField()" >
          <option value="">Select</option>
          <option value="GDS">Guides</option>
          <option value="LOF">Latest Offers</option>
          <option value="TEM">Templates</option>
          <option value="VID">Videos</option>
        </select>
      </td>
      <td>
        <input id="flddesc" name="flddesc" maxlength="500" disabled="true" class="objinputtext" size="85" value="{//RESPONSE}"  />

      </td>
      <td>
        <input  id="fldimg" name="fldimg" maxlength="50" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}"  />

      </td>
      <td>
        <input id="fldurl" name="fldurl" maxlength="15" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}"  />

      </td>
    </tr>
    <tr id="id02" name="row">
      <td>


        <select type="select-one" id='fldsearch' class="objselect" name="fldsearch" onChange="disableField()" >
          <option value="">Select</option>
          <option value="GDS">Guides</option>
          <option value="LOF">Latest Offers</option>
          <option value="TEM">Templates</option>
          <option value="VID">Videos</option>
        </select>
      </td>
      <td>
        <input id="flddesc" name="flddesc" maxlength="500" disabled="true" class="objinputtext" size="85" value="{//RESPONSE}"  />

      </td>
      <td>
        <input  id="fldimg" name="fldimg" maxlength="50" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}"  />

      </td>
      <td>
        <input id="fldurl" name="fldurl" maxlength="15" disabled="true" class="objinputtext" size="35" value="{//RESPONSE}"  />

      </td>
    </tr>
  </tbody>
</table>
        <div class="buttonarea">
  <ul>
    <li><input tabindex="6" id="Button3" value="Add New Row" class="Buttons" name="Button3" type="button" /></li>
  </ul>
  <ul>
    <li><input tabindex="6" id="Button4" value="Delete Row" class="delButtons" name="Button4" type="button" /></li>
  </ul>
</div>

关于javascript - 如何使用 jQuery 删除动态添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59319791/

相关文章:

javascript - 通过 AJAX 和 PHP 使用 POST 发送数据

javascript - RTCmulticonnection getViewers + onjoin 事件

javascript - 如何过滤出子树然后在 jQuery 中进行搜索?

javascript - DOM 元素上的每个 Jquery - 插入数组错误

html - 显示选项中显示的标签作为选择的标题

html - 我的 Textarea 不会输入文本

javascript - Electron 菜单动态更改项目标签

javascript - 使用Jquery百分比并写入多个div

javascript - 从 SQLite 检索图像并在 HTML 页面上显示图像 - JavaScript

html - 居中的 div 变大不能变小