[英]Without jQuery, how could I selectively remove elements that exist in an array?
在创建了一些 Tampermonkey 脚本之后,我现在才开始使用 Javascript 大约一个星期。
我正在处理的页面具有动态元素,这些元素基本上随着每个页面加载而随机弹出。 例如,有时页面只会加载一个“here”元素,而在不同的页面加载时,我可能只看到加载了“what”和“doing”。 在每个页面加载时,我希望让我的脚本扫描所有这些元素,并删除任何已加载的元素。
值得庆幸的是,它们的选择器路径很容易找到,但我正在寻找一种更好看/更简单的方法来让我的脚本找到这 5 个元素中的任何一个。 这是一直在工作的布局:
var what = document.querySelector('#wrapper > footer > div > div > div:nth-child(3) > span')
var am = document.querySelector('#wrapper > footer > div > div > div:nth-child(2) > span')
var i = document.querySelector('#wrapper > footer > div > div > div:nth-child(36) > span')
var doing = document.querySelector('#wrapper > footer > div > div > div:nth-child(4) > span')
var here = document.querySelector('#wrapper > footer > div > div > div:nth-child(5) > span')
if (what) {
what.remove();
}
if (am) {
am.remove();
}
if (i) {
i.remove();
}
if (doing) {
doing.remove();
}
if (here) {
here.remove();
}
拥有大量 IF 语句当然会起作用,而且我有一种强烈的感觉,将我所有的变量添加到一个数组中将是最干净的方法,但是到目前为止,在研究了数组和数组语句之后,我还不太清楚知道什么是我最好的选择。
理想情况下,我的目标是:
var group = [what, am, i, doing, here]
if (group.includes == true)
true.remove();
..或类似的东西。 有没有比我目前使用大量 IF 语句的方法更好的方法来做到这一点?
差不多了 - 只需使用forEach
循环遍历group
并remove
每个项目(如果存在):
var what = document.querySelector('#wrapper > footer > div > div > div:nth-child(3) > span')
var am = document.querySelector('#wrapper > footer > div > div > div:nth-child(2) > span')
var i = document.querySelector('#wrapper > footer > div > div > div:nth-child(36) > span')
var doing = document.querySelector('#wrapper > footer > div > div > div:nth-child(4) > span')
var here = document.querySelector('#wrapper > footer > div > div > div:nth-child(5) > span')
var group = [what, am, i, doing, here];
group.forEach(item => {
if (item) item.remove();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.