我正在运行一个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();