Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么.remove()在我的设置中不起作用?_Jquery_Html_Css - Fatal编程技术网

Jquery 为什么.remove()在我的设置中不起作用?

Jquery 为什么.remove()在我的设置中不起作用?,jquery,html,css,Jquery,Html,Css,我目前正在执行jQuery的第一步,但遇到了一个问题。有类似问题的人已经提出了很多问题,但他们帮不了我 在HTML文件中,我有一个表单和下面的div,它充当一个警报框,显示表单是否正确验证。在原始状态下,div包含一个用于关闭它的按钮 <div id="my-form-alert-box"> <button id="my-form-alert-button" type="button" class="close">x</button> </div

我目前正在执行jQuery的第一步,但遇到了一个问题。有类似问题的人已经提出了很多问题,但他们帮不了我

在HTML文件中,我有一个表单和下面的div,它充当一个警报框,显示表单是否正确验证。在原始状态下,div包含一个用于关闭它的按钮

<div id="my-form-alert-box">
    <button id="my-form-alert-button" type="button" class="close">x</button>
</div>

附加数据可以正常工作,但删除数据则不行。你能帮助我吗?多谢各位

调用$MyFormalertBox段落时,您的初始赋值将失败,因为标记中没有段落。在标记中添加“占位符”段落应该可以修复它。这解释了.remove将失败的原因

对于您的ajax,请尝试以下操作,以保持为变量分配新值:

//...
$.ajax({
    // ...
    success: function(data) {
        // Remove the existing paragraph.
        $myFormAlertBoxParagraph.remove();

        // This updates the paragraph object with the new one.
        $myFormAlertBoxParagraph = $(data);

        // Add the new paragraph and ensure the alert box is visible.
        $myFormAlertBox.append($myFormAlertBoxParagraph).show();
    }
});
//...

这将从警报框中删除段落标记,并添加新标记。没必要。先把它藏起来,然后马上。然后再拿出来。但是,如果.append被单击事件隐藏,则在.append之后添加.show将覆盖您。

调用$MyFormalertBox段落时,您的标记中没有段落,因此初始分配$MyFormalertBox段落将失败。在标记中添加“占位符”段落应该可以修复它。这解释了.remove将失败的原因

对于您的ajax,请尝试以下操作,以保持为变量分配新值:

//...
$.ajax({
    // ...
    success: function(data) {
        // Remove the existing paragraph.
        $myFormAlertBoxParagraph.remove();

        // This updates the paragraph object with the new one.
        $myFormAlertBoxParagraph = $(data);

        // Add the new paragraph and ensure the alert box is visible.
        $myFormAlertBox.append($myFormAlertBoxParagraph).show();
    }
});
//...

这将从警报框中删除段落标记,并添加新标记。没必要。先把它藏起来,然后马上。然后再拿出来。但是,如果在.append之后添加.show被您的单击事件隐藏,那么它将覆盖您。

jQuery对象不是活动对象。您甚至在附加之前就创建了$MyFormalertBox段落对象。因此,此对象为空,并且将永远为空,因为您从未重新分配它。

jQuery对象不是活动对象。您甚至在附加之前就创建了$MyFormalertBox段落对象。因此,此对象是空的,并且将永远是空的,因为您从未重新分配它。

我认为您的选择器在更新内容之前正在运行。选择器只能在最初运行时看到其中的内容。

我认为您的选择器在更新内容之前正在运行。选择器只能在最初运行时看到其中的内容。

能否显示从ajax请求数据中获取的完整内容?能否显示从ajax请求数据中获取的完整内容?我不想使用。在整个div上为空,因为这样按钮也将被删除。但我想保留按钮,只删除段落。我的错误。我没有仔细阅读标记。我已经更新了我的答案,现在应该对你有用了。你的代码有效,谢谢。正如在其他答案之一的评论中所述,我的问题主要与只使用一个选择器并将其分配给变量有关。你的代码部分解决了这个问题。我不想在整个div上使用.empty,因为这样按钮也会被删除。但我想保留按钮,只删除段落。我的错误。我没有仔细阅读标记。我已经更新了我的答案,现在应该对你有用了。你的代码有效,谢谢。正如在其他答案之一的评论中所述,我的问题主要与只使用一个选择器并将其分配给变量有关。你的代码部分解决了这个问题。你是对的。如果我没有像上面所示将选择器分配给变量,而是每次直接使用选择器,那么我的问题就消失了。但我在某个地方读到,给变量分配选择器比总是调用新的选择器更有效。这是真的吗?这是真的,但这会冻结价值。如果值不变,则使用变量更有效,而不是使用每次使用时都必须执行的选择器。在内容更改后,您需要获得一个新值。只有在不更改jQuery对象中反映的DOM部分时,此值才有效。您是对的。如果我没有像上面所示将选择器分配给变量,而是每次直接使用选择器,那么我的问题就消失了。但我在某个地方读到,给变量分配选择器比总是调用新的选择器更有效。这是真的吗?这是真的,但这会冻结价值。如果值不变,则使用变量更有效,而不是使用每次使用时都必须执行的选择器。在内容更改后,您需要获得一个新值。只有在不更改jQuery对象中反映的DOM部分时,此值才有效。您是对的。将选择器分配给变量是错误的。您是对的。将选择器指定给变量是错误的。
//...
$.ajax({
    // ...
    success: function(data) {
        // Remove the existing paragraph.
        $myFormAlertBoxParagraph.remove();

        // This updates the paragraph object with the new one.
        $myFormAlertBoxParagraph = $(data);

        // Add the new paragraph and ensure the alert box is visible.
        $myFormAlertBox.append($myFormAlertBoxParagraph).show();
    }
});
//...