无法删除动态创建的分区

unable to remove a dynamically created Div

本文关键字:分区 创建 动态 删除      更新时间:2023-09-26

我正在使用名为"sampageswrapper"的jquery动态创建一个div,问题是我想检查是否已经创建了div名称sampageswrapper,然后删除它。

<div id="container2" class="container" style="width:600px; height: 700px" name="container2">
Enter Color Name and use + to add more colors:
<input id="byname" type="text" name="byname">
<br>
<br>
<div class="sampageswrapper">
<div class="pagenumbering" align="center" style="clear: both; margin-top:12px; color:#FFF">
<div class="buttons">
</div>
<div class="pagecount" align="center">
</div>
<div class="sampageswrapper">
</div>

下面是我的JS/Jquery代码

    if ($("#sampageswrapper").length > 0) {
                jQuery('#container2').find('#sampageswrapper').remove();
//i also tried jQuery('#sampageswrapper').remove();
            }

但我无法删除div,请指导我。

您根据ID选择sampageswrapper,但您应该在类上进行测试。

jQuery('#container2').find('.sampageswrapper').remove(); 
jQuery('#container2 .sampageswrapper').remove(); // works too

看起来像是复制了id,因为id必须是唯一的,所以您可以使用class来代替动态添加的元素,然后您可以执行:

if ($("#container2 .sampageswrapper").length > 0) {
    jQuery('#container2').find('.sampageswrapper').remove();
}

您试图用id sampageswrapper删除一个对象,但在html中,这是类名。在remove语句中使用.sampageswrapper

添加断点:

if ($("#sampageswrapper").length > 0) {
   debugger;
   jQuery('#container2').find('#sampageswrapper').remove();
}

打开控制台并刷新页面,一旦它在断点上停止,在控制台中运行以下命令:

jQuery('#container2')

确保它返回您期望的对象。然后在控制台中运行:

jQuery('#container2').find('#sampageswrapper')

在这里你会看到它什么也不回。这是因为'#sampageswrapper'选择器错误,应该是类选择器:

jQuery('#container2').find('.sampageswrapper')

每当您在涉及jquery选择器的代码中遇到问题时,都应该经历这个过程,这样您就可以专注于导致问题的特定选择器

if ($(".sampageswrapper").length > 0) {
   jQuery('#container2').find('.sampageswrapper').remove();
}

使用类选择器而不是id选择器