gpt4 book ai didi

javascript - 为什么 removeChild 不删除元素?

转载 作者:行者123 更新时间:2023-11-28 13:57:57 25 4
gpt4 key购买 nike

我写这篇文章是为了去除网站上的广告。一整天都在研究它。

这是JS代码:

var timer = setInterval(deletor, 1);

function deletor() {
timer;
var slider = document.querySelector("#slider-con");
var bannerTop = document.querySelector("#MainContent > div:nth-child(2)")
var bannerMiddle = document.querySelector("#MainContent > iframe");
var bannerRandom = document.querySelector("#MainContent > div:nth-child(7)");
var bannerRandom2 = document.querySelector("#MainContent > div:nth-child(6)");


if (slider == undefined) {
return false;
} else {
slider.parentNode.removeChild(slider);
};

if (bannerTop == undefined) {
return false;
} else {
bannerTop.parentNode.removeChild(bannerTop);
};

if (bannerMiddle == undefined) {
return false;
} else {
bannerMiddle.parentNode.removeChild(bannerMiddle);
};

if (bannerRandom == undefined) {
return false;
} else {
bannerRandom.parentNode.removeChild(bannerRandom);
};

if (bannerRandom2 == undefined) {
return false;
} else {
bannerRandom2.parentNode.removeChild(bannerRandom2);
};

};

现在,如您所见,它首先获取值,然后通过 if 语句。这背后的想法是:在第一次尝试时,它删除元素,在第二次尝试时,它停止该功能。但是当我插入最后一个元素时,它不会删除它。 ID 是正确的,一切都是正确的,但它不会删除该元素,所以我一遍又一遍地收到相同的警报。

此外,我还发现,我在两个地方看到了这个横幅广告。当我有“var bannerRandom = document.querySelector("#MainContent > div:nth-child(7)");”这个,它显示为“document.querySelector(“#MainContent > div:nth-​​child(6)”)”这个,当我有两个时,它显示为“document.querySelector(“#MainContent > div:nth-​​child (6)")"这个。而且它没有被删除。

控制台没有显示错误。

最佳答案

你的各种陈述形式:

if (slider == undefined) {
return false;
} else {
slider.parentNode.removeChild(slider);
};

意思是:“如果在 DOM 中找不到 slider退出该函数。否则,删除 slider 并继续该函数。”

所以这意味着您的函数将在您要查找的元素之一不存在时终止。由于它随后终止,因此检查之后没有其他元素。这似乎不太可能是您想要做的。

你可能只是想要:

if (slider) {
slider.parentNode.removeChild(slider);
}

...等等。


请注意,不要将 ; 放在附加到流控制语句(如 ifelse)的 block 的末尾,这就是我在上面删除它的原因。 (这样做是无害的,因为 JavaScript 会忽略它们;但这毫无意义。)

关于javascript - 为什么 removeChild 不删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58188638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com