使用jQuery删除一个div

使用jQuery删除一个div,jquery,Jquery,我的一个网站上有这个代码 $("a.navlink").click(function (ev) { ev.preventDefault(); var id = $(this).attr("id") if($(this).hasClass("active")) { alert(id); $(id).remove("<d

我的一个网站上有这个代码

$("a.navlink").click(function (ev) {
                ev.preventDefault();
                var id = $(this).attr("id")
                if($(this).hasClass("active")) {
                    alert(id);
                    $(id).remove("<div id="+ id +"/>");
                }
            $(this).toggleClass("active");
               var url = $(this).attr("href");
                $.ajax ({
                    url: "index.php/home/category",
                    type: "GET",
                    success : function (html) {
                //alert("Success");
                        $("#accordion").append($("<div id="+ id +"/>").append(html)
                        );
                    }
                });
            });
$(“a.navlink”)。单击(功能(ev){
ev.preventDefault();
var id=$(this.attr(“id”)
if($(this).hasClass(“活动”)){
警报(id);
$(id)。删除(“”);
}
$(此).toggleClass(“活动”);
var url=$(this.attr(“href”);
$.ajax({
url:“index.php/home/category”,
键入:“获取”,
成功:函数(html){
//警惕(“成功”);
$(“#手风琴”).append($(“”)。append(html)
);
}
});
});
本质上,它从click nav获取ID,从数据库获取一些数据,然后将这些数据放在一个div中,该div用click元素的ID唯一命名。我想知道的是,如何删除动态创建的div元素,正如您从我的代码中看到的,我已经尝试过了

if ($(this).hasClass("active")) {
   $(this).remove();
}
这就是你所需要的


这就是你所需要的

您的代码还有另一个问题。您正试图为DIV提供与链接相同的ID。ID必须是唯一的,这样会导致无效的HTML。请尝试在链接id前加上“div_2;”,然后使用:

 $('#div_' + id).remove();
导致:

$("a.navlink").click(function (ev) {
    var id = $(this).attr("id");
    if($(this).hasClass("active")) {
        alert(id);
        $('#div_' + id).remove();
    }
    $(this).toggleClass("active");
    var url = $(this).attr("href");
    $.ajax ({
        url: "index.php/home/category",
        type: "GET",
        success : function (html) {
            //alert("Success");
            $("#accordion").append($("<div id='div_"+ id +"'/>").append(html));
        }
    });
});
$(“a.navlink”)。单击(功能(ev){
var id=$(this.attr(“id”);
if($(this).hasClass(“活动”)){
警报(id);
$('#div'+id).remove();
}
$(此).toggleClass(“活动”);
var url=$(this.attr(“href”);
$.ajax({
url:“index.php/home/category”,
键入:“获取”,
成功:函数(html){
//警惕(“成功”);
$(“#手风琴”).append($(“”)。append(html));
}
});
});

您的代码还有另一个问题。您正试图为DIV提供与链接相同的ID。ID必须是唯一的,这样会导致无效的HTML。请尝试在链接id前加上“div_2;”,然后使用:

 $('#div_' + id).remove();
导致:

$("a.navlink").click(function (ev) {
    var id = $(this).attr("id");
    if($(this).hasClass("active")) {
        alert(id);
        $('#div_' + id).remove();
    }
    $(this).toggleClass("active");
    var url = $(this).attr("href");
    $.ajax ({
        url: "index.php/home/category",
        type: "GET",
        success : function (html) {
            //alert("Success");
            $("#accordion").append($("<div id='div_"+ id +"'/>").append(html));
        }
    });
});
$(“a.navlink”)。单击(功能(ev){
var id=$(this.attr(“id”);
if($(this).hasClass(“活动”)){
警报(id);
$('#div'+id).remove();
}
$(此).toggleClass(“活动”);
var url=$(this.attr(“href”);
$.ajax({
url:“index.php/home/category”,
键入:“获取”,
成功:函数(html){
//警惕(“成功”);
$(“#手风琴”).append($(“”)。append(html));
}
});
});

这不是链接而不是div的表示吗?当然,这就是您根据此代码获得的ID。(请参阅我对您主要问题的评论)如果您想要子DIV的ID,那么您需要在代码中执行一些不同的操作。我获取(此)的ID,但只有这样我才能将其作为类(是ID)分配给附加到#accordiosant的DIV。这是链接的表示,而不是DIV?当然,这就是你根据这个密码得到的身份。(请参阅我对主要问题的评论)如果您想要一个子DIV的ID,那么您需要在代码中执行一些不同的操作。我获取(this)的ID,但这样我才能将其作为类(was-ID)分配给附加到#accordion的DIV。这里有几点我在逻辑上感到困惑,尽管超出了您对remove()的问题功能。您说过它是特定于ID的,但它在ajax调用中总是调用相同的URL。此外,您还添加了一个DIV,其ID与刚才单击的元素相匹配。(创建同一个ID两次)如果看不到更多,我无法完全推测你想要完成什么。这只是一些调整,但并不完全正确。基本上,它的工作原理是在所有这些的背后有数据库和codeigniter,菜单是用PHP动态创建的,并给出ID,ID被传递到javascript,点击一个链接,URI被描述的url收集,并向数据库发出查询,结果返回并打印在一个div中,该div由原始cliced链接上的ID标识。我意识到这不是验证,它将被更改为类。这里有几点我在逻辑上感到困惑,但除了你的remove()函数问题之外。您说过它是特定于ID的,但它在ajax调用中总是调用相同的URL。此外,您还添加了一个DIV,其ID与刚才单击的元素相匹配。(创建同一个ID两次)如果看不到更多,我无法完全推测你想要完成什么。这只是一些调整,但并不完全正确。基本上,它的工作原理是在所有这些的背后有数据库和codeigniter,菜单是用PHP动态创建的,并给出ID,ID被传递到javascript,点击一个链接,URI被描述的url收集,并向数据库发出查询,返回结果并打印在一个div中,该div由原始cliced链接上的ID标识。我意识到这不是验证,它将更改为类