为什么mouseonhover javascript不能处理类,但可以处理ID?

为什么mouseonhover javascript不能处理类,但可以处理ID?,javascript,Javascript,为什么javascript中鼠标悬停不适用于类,而适用于ID 比如说, window.onload = function() { var myIcon = document.getElementsByClassName('myIcon'); //does not work myIcon.onmouseover = function() { // do something return false; }; }; but windo

为什么javascript中鼠标悬停不适用于类,而适用于ID

比如说,

 window.onload = function() {
    var myIcon = document.getElementsByClassName('myIcon'); //does not work
    myIcon.onmouseover = function() {
        // do something
        return false;
    };
};   

but

window.onload = function() {

    var myIcon = document.getElementsByID('myIcon'); //works 

    myIcon.onmouseover = function() {
        // do something
        return false;
    };
};   

您有两个同名的变量,即重新定义和重新分配
myIcon
。另外,
getElementsByID
不是函数,
getElementById
getElementsByID
是函数
getElementsById
然后返回包含元素“数组”的节点列表。最后,
getElementsByClassName
还返回一个节点列表。两者都是数组,所以你必须这样对待它

下面是一个示例,请注意,示例中的
getElementsByClassName
仅适用于类为
myIcon
的第一个元素。可以使用for循环遍历所有元素并更改其侦听器

var myIcon_class=document.getElementsByClassName('myIcon')[0]//注意,获取第一个元素
var myIcon=document.getElementById('myIcon'))
myIcon.onmouseover=函数(){
警报(“悬停在ID上!”);
返回false;
};
myIcon_class.onmouseover=函数(){
警报(“悬停在课堂上!”);
返回false;
}; 
Id span!

班距对不起,我实际上使用了一个myIcon变量,这只是为了说明,我正在编辑我的问题。可能是重复的