很抱歉,但是我无法使用此逻辑,我想在页面上选择所有<a>
标签,然后在其中一个标签悬停时注销,任何人都可以解释我在哪里出错了?
JS
var links = document.getElementsByTagName('a');
links.onmouseover = function() {
console.log('hovered');
};
//切换到jQuery我可以做得很好,但想知道JS版本
var links = $('a');
links.on('mouseover', function() {
console.log('hovered');
});
答案 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');
};
}