Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有jQuery,我如何有选择地删除数组中存在的元素?_Javascript_Jquery_Html_Arrays - Fatal编程技术网

Javascript 没有jQuery,我如何有选择地删除数组中存在的元素?

Javascript 没有jQuery,我如何有选择地删除数组中存在的元素?,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,在创建了一些脚本之后,我刚刚开始使用Javascript大约一周 我正在处理的页面具有动态元素,这些元素基本上随每次页面加载而随机弹出。例如,有时页面只加载了“here”元素,而在另一个页面加载中,我可能只看到加载了“what”和“doing”。在每次加载页面时,我希望让脚本扫描所有这些元素,并删除所有已加载的元素 谢天谢地,它们的选择器路径很容易找到,但我正在寻找一种更好看/更简单的方法,让我的脚本找到这5个元素中的任何一个。以下是一直有效的布局: var what = document.qu

在创建了一些脚本之后,我刚刚开始使用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
,然后
删除每个存在的项:

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
循环遍历它,并根据你的条件删除元素。谢谢!我已经查阅了几次forEach
forEach
,但不太确定如何将其准确地合并到脚本中。这里给出了一些答案,说明了如何使用这个参数,现在这一切都很有意义。现在我有了一个更好的主意,我可能不得不回去尝试一些其他参数,并通过控制台摆弄结果。再次感谢!啊哈,在那里!啊哈,非常感谢你填写了那缺失的部分<代码>forEach
在挖掘数组参数后不断弹出,但我不确定如何充分利用它。我想有一次我甚至尝试使用
splice()
将所有加载的元素排序到一个全新的数组中,然后找到一种方法只删除新数组中的元素,哈哈。我一直干到凌晨4点才失去理智。谢谢你快速而有用的回答!