为什么mouseonhover javascript不能用于类,而是用于id?

时间:2016-09-01 22:50:03

标签: javascript

为什么鼠标悬停在javascript中不能使用类,但可以使用ID?

例如,

$(document).ready(function(){
        $('.table td').each(function(){
            if($(this).text() <1) {
                $(this).css('background-color','#fff');
            }
            else if($(this).text() <29) {
                $(this).css('background-color','#9A271C');
            }
            else if($(this).text() <49) {
                $(this).css('background-color','#BA650E');
            }
        });
    });

1 个答案:

答案 0 :(得分:2)

你有两个同名的变量,即重新声明和重新分配myIcon。此外,getElementsByID不是函数,getElementByIdgetElementsById。然后getElementsById返回一个带有'array'元素的NodeList。最后,getElementsByClassName也返回一个NodeList。两者都是类似阵列的,所以你必须这样对待它。

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

var myIcon_class = document.getElementsByClassName('myIcon')[0]; //note, gets first element
var myIcon = document.getElementById('myIcon')
    
myIcon.onmouseover = function() {
    alert("hovered on ID!");
    return false;
};
    
myIcon_class.onmouseover = function() {
	alert("hovered on class!");
    return false;
}; 
<span id="myIcon">Id span!</span>
<span class="myIcon">Class span!</span>