表格鼠标悬停变色。
代码:
var tr=document.getElementsByTagName('tr');
for (var i = 0; i < tr.length; i++) {
tr[i].onmouseover=function(){
tr[i].style.backgroundColor="#f2f2f2";
}
tr[i].onmouseleave=function(){
tr[i].style.backgroundColor="#fff";
}
}
chrome说的是 Uncaught TypeError: Cannot read property 'style' of undefined at HTMLTableRowElement.tr.(anonymous function).onmouseover
但是把tr[i]
改为this
就可以:
var tr=document.getElementsByTagName('tr');
for (var i = 0; i < tr.length; i++) {
tr[i].onmouseover=function(){
this.style.backgroundColor="#f2f2f2";
}
tr[i].onmouseleave=function(){
this.style.backgroundColor="#fff";
}
}
让我们先来假设页面上有5个tr,这样子比较好说明:
而第二段代码传this的话,就是指向事件被触发的目标元素,这个是浏览器传给你了,所以一定正确
哈哈,这是形象的理解,希望对你有帮助。