Javascript getElementsByClassName不是';行不通
这段代码在console.log中没有错误,但是它没有显示它应该显示的类名Javascript getElementsByClassName不是';行不通,javascript,dom,Javascript,Dom,这段代码在console.log中没有错误,但是它没有显示它应该显示的类名 document.getElementsByClassName("abc").onmouseover = function(){mouseOver()}; function mouseOver(){ abc.innerHTML = "Class name " + abc.className; } .getElementsByClassName()例程返回元素列表。您不能像尝试那样通过列表直接向所有元素添加事件处
document.getElementsByClassName("abc").onmouseover = function(){mouseOver()};
function mouseOver(){
abc.innerHTML = "Class name " + abc.className;
}
.getElementsByClassName()
例程返回元素列表。您不能像尝试那样通过列表直接向所有元素添加事件处理程序。您必须显式迭代:
var abc = document.getElementsByClassName("abc");
for (var i = 0; i < abc.length; ++i) {
// ...
}
使用
.forEach
确保事件处理程序使用循环回调每次调用专用的局部变量(元素
)正常工作。document.getElementsByClassName返回具有所有给定类名的所有子元素的类似数组的对象。因此,必须将onmousever事件与每个子对象绑定
你可以这样试试
var elements=document.getElementsByClassName(“abc”)
对于(var i=0;i
老鼠在我身上
文档。GetElementsByCassName(“abc”)
返回html元素的集合,您应该在集合中遍历这些元素中的每一个,也可以在事件处理程序中使用此
。@FelixKling yes sure;我懒得验证onfoo
类型处理程序是否始终正确绑定了this
:)谢谢您的帮助,但这在chrome上不起作用。我在jsfiddle上试过,它确实有效。我不知道该怎么办…它在chrome上为我工作。你能把你的密码寄出去吗?var elements=document.getElementsByClassName(“abc”)for(var i=0;ivar abc = document.getElementsByClassName("abc");
[].forEach.call(abc, function(element) {
element.onmouseover = function() {
element.innerHTML = "Class name: " + element.className;
};
});