Javascript 删除使用JQuery动态添加的html元素

Javascript 删除使用JQuery动态添加的html元素,javascript,jquery,ajax,dom-manipulation,Javascript,Jquery,Ajax,Dom Manipulation,在我的html页面中,我有一个带有一些选项的select。 当选择一个选项时,会触发一个ajax调用,将选项的值传递给php脚本,该脚本返回一个html片段,另一个select带有附加到页面的特定id 当用户从第一次选择中选择另一个选项时,将再次触发事件,执行ajax调用,并将具有相同id的另一个html片段附加到页面中 我希望,如果再次触发事件,则在追加新元素之前,从页面中删除追加的元素 目前我正在使用以下代码: $(document).ready(function() { $("#i

在我的html页面中,我有一个带有一些选项的select。 当选择一个选项时,会触发一个ajax调用,将选项的值传递给php脚本,该脚本返回一个html片段,另一个select带有附加到页面的特定id

当用户从第一次选择中选择另一个选项时,将再次触发事件,执行ajax调用,并将具有相同id的另一个html片段附加到页面中

我希望,如果再次触发事件,则在追加新元素之前,从页面中删除追加的元素

目前我正在使用以下代码:

$(document).ready(function() {
    $("#id_serie").change(function() { //#id_serie is the if of the first select
        if ($("#id_subserie_label")) { //#id_subserie_label is the id of the html element returned by the ajax call
            console.log("Removing");
            $("#id_subserie_label").empty().remove();
        }
        var url = 'myscript.php';
        var id_s = $(this).val();
        $.post(url, {id_serie: id_s}, function(data) {
            $("#id_serie").parent().after(data);
        });
    });
}); 
但是,这不起作用,第二个ajax调用返回的html元素被追加到第一个调用返回的元素之后,因为加载脚本时,id为_subscrie_标签的元素不在页面中

我怎样才能实现我所需要的

你们很接近

只需将if$id\u substrie\u标签更改为if$id\u substrie\u标签。长度:


解释:$id\u substrie\u label是一个对象,对象的计算结果始终为true。if语句仅在该console.log调用中才真正需要。除此之外,根本不需要它,因为如果长度大于0,jQuery只会清空/删除匹配集中的元素。这样的事情让我想知道为什么ECMAScript后端函数ToBoolean从来没有像toString和valueOf那样公开。Object.prototype.toBoolean对于这种情况和其他许多情况来说都是非常好的。谢谢Matt,我补充道。我的代码很长,一切都很好,我学到了一些关于jQuery的新东西!Matt Ball的答案是正确的,原因是jQuery$函数将始终返回jQuery对象,无论它是否能够找到您要查找的元素。.length属性告诉您找到了多少元素。
$(document).ready(function() {
    $("#id_serie").change(function() {
        if ($("#id_subserie_label").length) { // <=== change this line
            console.log("Removing");
            $("#id_subserie_label").empty().remove();
        }
        var url = 'myscript.php';
        var id_s = $(this).val();
        $.post(url, {id_serie: id_s}, function(data) {
            $("#id_serie").parent().after(data);
        });
    });
});
$(document).ready(function() {
    $("#id_serie").change(function() {
        $("#id_subserie_label").empty().remove();
        var url = 'myscript.php';
        var id_s = $(this).val();
        $.post(url, {id_serie: id_s}, function(data) {
            $("#id_serie").parent().after(data);
        });
    });
});