Javascript 没有jQuery,我如何有选择地删除数组中存在的元素?
在创建了一些脚本之后,我刚刚开始使用Javascript大约一周 我正在处理的页面具有动态元素,这些元素基本上随每次页面加载而随机弹出。例如,有时页面只加载了“here”元素,而在另一个页面加载中,我可能只看到加载了“what”和“doing”。在每次加载页面时,我希望让脚本扫描所有这些元素,并删除所有已加载的元素 谢天谢地,它们的选择器路径很容易找到,但我正在寻找一种更好看/更简单的方法,让我的脚本找到这5个元素中的任何一个。以下是一直有效的布局:Javascript 没有jQuery,我如何有选择地删除数组中存在的元素?,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,在创建了一些脚本之后,我刚刚开始使用Javascript大约一周 我正在处理的页面具有动态元素,这些元素基本上随每次页面加载而随机弹出。例如,有时页面只加载了“here”元素,而在另一个页面加载中,我可能只看到加载了“what”和“doing”。在每次加载页面时,我希望让脚本扫描所有这些元素,并删除所有已加载的元素 谢天谢地,它们的选择器路径很容易找到,但我正在寻找一种更好看/更简单的方法,让我的脚本找到这5个元素中的任何一个。以下是一直有效的布局: var what = document.qu
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
,然后删除每个存在的项:
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();
});
你的思路是正确的,就像你为组所做的那样构建数组表单,然后使用forEach
循环遍历它,并根据你的条件删除元素。谢谢!我已经查阅了几次forEachforEach
,但不太确定如何将其准确地合并到脚本中。这里给出了一些答案,说明了如何使用这个参数,现在这一切都很有意义。现在我有了一个更好的主意,我可能不得不回去尝试一些其他参数,并通过控制台摆弄结果。再次感谢!啊哈,在那里!啊哈,非常感谢你填写了那缺失的部分<代码>forEach
在挖掘数组参数后不断弹出,但我不确定如何充分利用它。我想有一次我甚至尝试使用splice()
将所有加载的元素排序到一个全新的数组中,然后找到一种方法只删除新数组中的元素,哈哈。我一直干到凌晨4点才失去理智。谢谢你快速而有用的回答!