gpt4 book ai didi

javascript - Jquery,无法删除克隆的元素

转载 作者:行者123 更新时间:2023-11-28 04:59:45 26 4
gpt4 key购买 nike

当我尝试在我的 jquery 代码中使用克隆方法时,我遇到了一些问题。我在这里列出了我想要的和我面临的问题。

首先让我告诉我我想要什么,我希望当我点击添加按钮时,我的代码应该克隆给 id 的元素和删除按钮的数据。 ( JS Fiddle )

这是我的代码:HTML

<table class="cloneelementtable">
<tr>
<td>
<div class="priceandsize1row">&nbsp;</div>
</td>
<td>
<div class="priceandsize2row">&nbsp;</div>
</td>
<td>
<div class="priceandsize3row">&nbsp;</div>
</td>
<td>
<div class="priceandsize4row">&nbsp;</div>
</td>
<td>
<div class="priceandsize5row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td id="divaddmore">
<div class="priceandsize6to9row" id="todoclone">
<img src="http://cdn2.iconfinder.com/data/icons/icojoy/noshadow/standart/gif/24x24/001_01.gif" width="30" height="30">
</div>
</td>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">B</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<div id="showsizeheader">
<td id="tdhide1" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="16">
</div>
</div>
</td>
<td id="tdhide2" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="17">
</div>
</div>
</td>
<td id="tdhide3" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="18">
</div>
</div>
</td>
<td id="tdhide4" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="19">
</div>
</div>
</td>
<td id="tdhide5" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="20">
</div>
</div>
</td>
<td id="tdhide6" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="21">
</div>
</div>
</td>
<td id="tdhide7" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="22">
</div>
</div>
</td>
<td id="tdhide8" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="23">
</div>
</div>
</td>
<td id="tdhide9" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="24">
</div>
</div>
</td>
<td id="tdhide10" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="25">
</div>
</div>
</td>
<td id="tdhide11" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="26">
</div>
</div>
</td>
<td id="tdhide12" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="27">
</div>
</div>
</td>
<td id="tdhide13" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="28">
</div>
</div>
</td>
<td id="tdhide14" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="29">
</div>
</div>
</td>
<td id="tdhide15" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="30">
</div>
</div>
</td>
<td id="tdhide16" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="31">
</div>
</div>
</td>
<td id="tdhide17" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="32">
</div>
</div>
</td>
</div>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">140</div>
</div>
</td>
<td>
<div class="priceandsize11row">
<div class="tablecolorgrey">$4815.00</div>
</td>
<td>
<div class="priceandsize11row" id="showsize">
<img id="showimg" src="images/img_click_moresizes.jpg" width="35" height="30">
</div>
</td>
</tr>
<tr id="cloneelement">
<td>
<div class="priceandsize1row">&nbsp;</div>
</td>
<td>
<div class="priceandsize2row">&nbsp;</div>
</td>
<td>
<div class="priceandsize3row">&nbsp;</div>
</td>
<td>
<div class="priceandsize4row">&nbsp;</div>
</td>
<td>
<div class="priceandsize5row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row">&nbsp;</div>
</td>
<td>
<div class="priceandsize6to9row" id="toremoveclone">
<img src="http://cdn2.iconfinder.com/data/icons/32pxmania/buttons_21.png" width="30" height="30">
</div>
</td>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">B</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<div id="showsizeheader">
<td id="tdhide1" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="16">
</div>
</div>
</td>
<td id="tdhide2" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="17">
</div>
</div>
</td>
<td id="tdhide3" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="18">
</div>
</div>
</td>
<td id="tdhide4" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="19">
</div>
</div>
</td>
<td id="tdhide5" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="20">
</div>
</div>
</td>
<td id="tdhide6" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="21">
</div>
</div>
</td>
<td id="tdhide7" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="22">
</div>
</div>
</td>
<td id="tdhide8" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="23">
</div>
</div>
</td>
<td id="tdhide9" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="24">
</div>
</div>
</td>
<td id="tdhide10" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="25">
</div>
</div>
</td>
<td id="tdhide11" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="26">
</div>
</div>
</td>
<td id="tdhide12" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="27">
</div>
</div>
</td>
<td id="tdhide13" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="28">
</div>
</div>
</td>
<td id="tdhide14" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="29">
</div>
</div>
</td>
<td id="tdhide15" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="30">
</div>
</div>
</td>
<td id="tdhide16" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="31">
</div>
</div>
</td>
<td id="tdhide17" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="32">
</div>
</div>
</td>
</div>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">140</div>
</div>
</td>
<td>
<div class="priceandsize11row">
<div class="tablecolorgrey">$4815.00</div>
</td>
</tr>
</table>

代码在这里:JQ

var id = 0;
$(document).ready(function () {
$('#todoclone').click(function () {
$('#cloneelement').clone().appendTo(".cloneelementtable");
id++;
});

/*$('#toremoveclone').click(function() {
$('#cloneelement').closest('#cloneelement').fadeOut("slow", function(){
$(this).remove();
});
});*/
$("#toremoveclone").click(function () {
console.log(id);
if (id > 1) { //Only apply if the lang field is more than 1
id = id - 1;
$("#cloneelement:last").remove();
console.log(id);
}
});
});

我对此进行了一些搜索并编写了类似的代码(此处的代码:JS Fiddle )

但是代码中有一些问题,(如下所列)1] 我无法删除克隆的元素,我需要在列表中克隆它 3 次,然后当我单击第一个减号图标时它只删除一次。之后我无法删除更多内容。

谁能告诉我如何解决这类问题?

即单击加号按钮进行克隆,然后单击删除按钮删除克隆。

最佳答案

问题出在您的 $("#toremoveclone").click(...) 绑定(bind)上。你错过了一些东西。这是 working fiddle .

问题:

  • ID 应该是唯一的。
  • 您期望事件委托(delegate),但没有进行设置。
  • $("#toremoveclone").click(...) 仅将点击事件绑定(bind)到第一个 #toremoveclone
  • 检查添加超过 2 个克隆(您的代码需要超过 1 个克隆才能删除一个)并删除您的 fiddle 中的第一个。 .
  • 它将被删除。但其他人不会,因为他们没有绑定(bind)到任何点击事件。

我所做的更改:

  • 为 div 添加了一个类(toremoveclone)。

  • 将事件绑定(bind)更改为

    $(".cloneelementtable").on('click', '.toremoveclone', function () {..})

  • here 中了解有关 Jquery 事件委托(delegate)的更多信息& here ,因为如果我解释,我可能会搞砸 :(

关于javascript - Jquery,无法删除克隆的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342199/

26 4 0
文章推荐: jquery - 不断刷新/接收输出
文章推荐: JQuery 动画高度到 100%
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com