如何getElementsByTagName然后在悬停选定的标签时使用onmouseover?

时间:2013-12-28 19:01:34

标签: javascript

很抱歉,但是我无法使用此逻辑,我想在页面上选择所有<a>标签,然后在其中一个标签悬停时注销,任何人都可以解释我在哪里出错了?

JS

var links = document.getElementsByTagName('a');

links.onmouseover = function() {
    console.log('hovered');
};

小提琴http://jsfiddle.net/AK8N8/

//切换到jQuery我可以做得很好,但想知道JS版本

var links = $('a');

links.on('mouseover', function() {
    console.log('hovered');
});

2 个答案:

答案 0 :(得分:1)

你必须在纯JS中为每个元素添加事件而不是COLLECTION。 jQuery在引擎盖中做到这一点。所以:

for(var i=0; i<links.length; i++) {
   // ... links[i].addEventListener()
}

答案 1 :(得分:1)

那是因为document.getElementsByTagName返回一个NodeList。您必须循环遍历项目并单独附加onmouseover功能:

var links = document.getElementsByTagName('a');

for (var i = 0; i < links.length; i++) {
    links[i].onmouseover = function() {
        console.log('hovered');
    };
}