简体   繁体   English

如何双击添加和删除div

[英]How to append and remove div on double click

 $(".sd").dblclick(function() { $(this).parent().remove(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" bgcolor="#333" class="st">Size Chart</td> </tr> <tr> <td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">UK sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td> </tr> <tr class="row-edit"> <td height="20" bgcolor="#FEFDF8" class="sd">17</td> <td height="20" bgcolor="#FEFDF8" class="sd">27</td> <td height="20" bgcolor="#FEFDF8" class="sd">25</td> </tr> </table> 

Right now If I double click on sd class it removes the whole row. 现在,如果我双击sd类,它将删除整行。 What I want to add is that when I double click on se class it adds a row . 我要添加的是,当我双击se类时,它会添加一行。

To remove .sd row: 要删除.sd行:

$('body').on('dblclick', '.sd', function() {
  $(this).parent().remove();
});

To duplicate last .se row: 要复制最后一个.se行:

$('body').on('dblclick', '.se', function () {
  const $table = $(this).parents('table').first();
  let $row = $table.find('tr:has(.sd)').last();
  if ($row.size() == 0) {
    $row = $([ '<tr class="row-edit">'
             , '<td height="20" bgcolor="#FEFDF8" class="sd">17</td>'
             , '<td height="20" bgcolor="#FEFDF8" class="sd">27</td>'
             , '<td height="20" bgcolor="#FEFDF8" class="sd">25</td>'
             , '</tr>'
             ].join('')
            );
  }
  $table.append($row.clone(true));
});

 $('body').on('dblclick', '.sd', function() { $(this).parent().remove(); }); $('body').on('dblclick', '.se', function () { const $table = $(this).parents('table').first(); let $row = $table.find('tr:has(.sd)').last(); if ($row.size() == 0) { $row = $([ '<tr class="row-edit">' , '<td height="20" bgcolor="#FEFDF8" class="sd">17</td>' , '<td height="20" bgcolor="#FEFDF8" class="sd">27</td>' , '<td height="20" bgcolor="#FEFDF8" class="sd">25</td>' , '</tr>' ].join('') ); } $table.append($row.clone(true)); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" bgcolor="#333" class="st">Size Chart</td> </tr> <tr> <td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">UK sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td> </tr> <tr class="row-edit"> <td height="20" bgcolor="#FEFDF8" class="sd">17</td> <td height="20" bgcolor="#FEFDF8" class="sd">27</td> <td height="20" bgcolor="#FEFDF8" class="sd">25</td> </tr> </table> 

Here you have a working solution. 在这里,您有一个可行的解决方案。

 $(document).on("dblclick", ".sd", function() { $(this).parent().remove(); }); $(document).on("dblclick", ".se", function() { $(this).parent().parent().append( '<tr class="row-edit"><td height="20" bgcolor="#FEFDF8" class="sd">17</td>td height="20" bgcolor="#FEFDF8" class="sd">27</td><td height="20" bgcolor="#FEFDF8" class="sd">25</td></tr>') }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" bgcolor="#333" class="st">Size Chart</td> </tr> <tr> <td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">UK sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td> </tr> <tr class="row-edit"> <td height="20" bgcolor="#FEFDF8" class="sd">17</td> <td height="20" bgcolor="#FEFDF8" class="sd">27</td> <td height="20" bgcolor="#FEFDF8" class="sd">25</td> </tr> </table> 

Use .parent().parent().append() 使用.parent().parent().append()

 $( ".sd" ).dblclick(function() {$( this ).parent().remove();}); $( ".se" ).dblclick(function() {$( this ).parent().parent().append( '<tr>' +'<td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td>' +'<td width="100" bgcolor="#FCF2E8" class="se">15</td>' +'<td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td>' +'</tr>') }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="3" bgcolor="#333" class="st">Size Chart</td></tr> <tr> <td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">UK sizes</td> <td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td> </tr> <tr class="row-edit"> <td height="20" bgcolor="#FEFDF8" class="sd">17</td> <td height="20" bgcolor="#FEFDF8" class="sd">27</td> <td height="20" bgcolor="#FEFDF8" class="sd">25</td> </tr> </table> 

  • double click .sd -> delete row 双击.sd >删除行
  • double click .se -> add new row 双击.se >添加新行

I also added the class .sd to the newly created row so you can delete it. 我还将类.sd添加到了新创建的行中,因此可以将其删除。

$(".sd").dblclick(function () {
  $(this).parent().remove();
});

$(".se").dblclick(function() {
  let table = document.getElementById('myTable');
  tr = document.createElement("tr");
  tr.setAttribute("class", "row-edit");

  td = document.createElement("td")
  td.appendChild(document.createTextNode("5"));
  td.setAttribute("class", "sd");
  tr.appendChild(td);
  td = document.createElement("td")
  td.appendChild(document.createTextNode("123"));
  td.setAttribute("class", "sd");
  tr.appendChild(td);
  td = document.createElement("td")
  td.appendChild(document.createTextNode("555"));
  td.setAttribute("class", "sd");

  tr.appendChild(td);
  table.appendChild(tr);
});

Just make sure to add an id to your table. 只要确保将一个id添加到您的表即可。

<table id="myTable" width="750" border="0" cellpadding="0" cellspacing="0">
...
</table>

Is this what you were looking for? 这是您要找的东西吗?

HTML 的HTML

<table width="750" border="0" cellpadding="0" cellspacing="0">
<tr>
   <td colspan="3"  bgcolor="#333" class="st">Size Chart</td>
</tr>
<tr>
  <td width="116" bgcolor="#FCF2E8" class="se">US Sizes</td>
  <td width="100" bgcolor="#FCF2E8" class="se">UK sizes</td>
  <td width="100" bgcolor="#FCF2E8" class="se">Foot Length (cm)</td>
</tr>
<tr class="row-edit">
  <td height="20" bgcolor="#FEFDF8" class="sd">17</td>
  <td height="20" bgcolor="#FEFDF8" class="sd">27</td>
  <td height="20" bgcolor="#FEFDF8" class="sd">25</td>
</tr>
<tr class="row-add" style="display:none">
  <td height="20" bgcolor="#FEFDF8" class="add">20</td>
  <td height="20" bgcolor="#FEFDF8" class="add">28</td>
  <td height="20" bgcolor="#FEFDF8" class="add">32</td>
</tr>
</table>

JQuery: jQuery的:

$( ".sd" ).dblclick(function() {$(".row-add").show();});

So now, it add a row when I double click on a "sd" class. 因此,现在,当我双击“ sd”类时,它将添加一行。

Working demo: JSFiddle 工作演示: JSFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM