Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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 querySelector工作,但querySelectorAll不工作';T_Javascript_Queryselector - Fatal编程技术网

Javascript querySelector工作,但querySelectorAll不工作';T

Javascript querySelector工作,但querySelectorAll不工作';T,javascript,queryselector,Javascript,Queryselector,我对JS很陌生。 有3个SVG,我正在尝试在鼠标结束时更改填充颜色。 当我使用querySelector('.svg')时,第一个非常有效。 我想全部改变这三个,不仅仅是第一个, 但是querySelectorAll('.svg')或GetElementsByCassName、getElementsbyTagName似乎都不起作用。有什么问题? 任何帮助都将不胜感激。 多谢各位 const icon=document.queryselectoral(“.svg”); icon.addEvent

我对JS很陌生。 有3个SVG,我正在尝试在鼠标结束时更改填充颜色。 当我使用querySelector('.svg')时,第一个非常有效。 我想全部改变这三个,不仅仅是第一个, 但是querySelectorAll('.svg')或GetElementsByCassName、getElementsbyTagName似乎都不起作用。有什么问题? 任何帮助都将不胜感激。 多谢各位

const icon=document.queryselectoral(“.svg”);
icon.addEventListener(“鼠标悬停”,函数(){
icon.style.color=“#ED4264”;
});
icon.addEventListener(“mouseout”,函数(){
icon.style.color=“黑色”;
});

不同之处在于
.querySelector()
只选择一个元素,而
.queryselectoral()
选择多个元素,这意味着您将得到一个带有
.queryselectoral()
的列表,因此您需要循环并为每个SVG添加一个事件侦听器

const icons=document.queryselectoral(“.svg”)//使用“图标”,其复数形式
icons.forEach(icon=>{
icon.addEventListener(“鼠标悬停”,函数(){
icon.style.color=“#ED4264”;
});
icon.addEventListener(“mouseout”,函数(){
icon.style.color=“黑色”;
});
})

下面返回一组元素

const icon = document.querySelectorAll(".svg");
不能在节点列表上使用
addEventListener
,但可以执行以下操作:

icon.forEach(function(elem) {
  elem.addEventListener(...);
});

这应该为原始查询的每个元素附加一个事件侦听器。

数组/DOM集合没有
addEventListener
方法。非常感谢!但是你能解释一下(icon=>)代表什么吗?我知道=>的字面意思,但我不理解这段代码中的用法。这是一个箭头函数。你可以在这里阅读它,你会经常看到它的常规函数方式是
function(icon){…}
@user13670138我在这里做的是循环列表中的每个元素,这就是为什么它被称为
forEach
,并为列表中的每个元素添加一个事件侦听器