我正在运行一个jQuery $.post函数,该函数从php页面返回数据。在该页面中,将创建一些具有特定ID的div。我需要做的是删除div(如果它已在当前网页上找到),但让其他人通过。这是代码:

var phpDivs = [];
$(data).filter("div").each(function(){ phpDivs.push(this.id); });
var pageDivs = [];
$("#items").find("div").each(function() { pageDivs.push(this.id); });

$.each(phpDivs, function(indexphp, phpDiv) {
    $.each(pageDivs, function(indexpage, pageDiv) {
        if (pageDiv == phpDiv) {
            alert("match");
            $(phpDiv, $(data)).delete(); //problem code
        }
    });
});

$(data).appendTo("#items").show("slide", {direction: "right"}, 500);


上面的注释行似乎删除了所有div,而不仅仅是特定的div。我也尝试过:

$('"#'+ phpDiv + '"', $(data)).delete();


具有相同的结果。



编辑

遇到了一些有趣的事情。如果我用以下代码替换问题代码:

data = $(data).html("<p>blah</p>");


然后它将实际更改数据对象。我不能使用$(data)。但是,我仍然无法完全按照我想要的方式来工作,而根本不知道问题出在哪里。

最佳答案

尝试$('"#'+ phpDiv + '"', $(data)).remove();

09-25 17:36