Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 在一个变量中存储多个查询选择器的最佳方法_Javascript - Fatal编程技术网

Javascript 在一个变量中存储多个查询选择器的最佳方法

Javascript 在一个变量中存储多个查询选择器的最佳方法,javascript,Javascript,我这里有一些简单的HTML: <div class='one'> <p>one</p> <p>one</p> <p>one</p> </div> <div class='two'> <p>two</p> <p>two</p> <p>two</p> </div> 代码笔: code

我这里有一些简单的HTML:

<div class='one'>
  <p>one</p>
  <p>one</p>
  <p>one</p>
</div>

<div class='two'>
  <p>two</p>
  <p>two</p>
  <p>two</p>
</div>
代码笔:

code nodes变量实现了我想要的:两个节点列表的串联。为了简洁起见,有没有更好的写作方法?如果我是正确的,您不能在节点列表上使用concat方法,因为它们是特定于数组的-并且使用spread操作符使其与IE不兼容


谢谢您的建议。

为什么不使用一个带有两个选择器的
queryselectoral()

var nodes=document.querySelectorAll('.one p,.two p');
console.log(nodes.length)

一个

一个

一个

两个

两个

两个


为什么不使用一个带有两个选择器的
查询选择器all()

var nodes=document.querySelectorAll('.one p,.two p');
console.log(nodes.length)

一个

一个

一个

两个

两个

两个


这在IE或旧版本的浏览器中不起作用,您必须使用polyfill@HusseinAl-Mosawi,你真的想要IE11的支持吗?这只是对OP和其他人的提醒,我们只需要支持IE11。非常好的JS,即使我们不需要支持IE!感谢you@user8758206,删除
数组。从
应在ie11中工作,更新了答案,请检查:)这在IE或旧版本的浏览器中不起作用您必须使用polyfill@HusseinAl-Mosawi,你真的想要IE11的支持吗?这只是对OP和其他人的提醒,我们只需要支持IE11。非常好的JS,即使我们不需要支持IE!感谢you@user8758206,删除
数组。从
应该在ie11中起作用,更新了答案,请检查:)如果您只想使用示例,但想支持IE,您可以使用此polyfill,只需将其置于所有脚本标记之上,以确保浏览器首先加载它或
var nodes=Array.prototype.slice.call(one.concat)(Array.prototype.slice.call(twos));
如果您只想使用示例,但想支持IE,您可以使用此polyfill,只需将其置于所有脚本标记之上,以确保浏览器首先加载它,或者
var nodes=Array.prototype.slice.call(ones).concat(Array.prototype.slice.call(twos));
var nodes = [],
    ones = document.querySelectorAll('.one p'),
    twos = document.querySelectorAll('.two p');

nodes = [...ones, ...twos];

console.log(nodes.length);