day16--Dom鼠标操作
1、有一个表格,当鼠标移动到某行时,该行变红,移除时,变为白色
<body>
<table border="1" width="300px">
<tr onmouseover="t1(0);" onmouseout="t2(0);">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr onmouseover="t1(1);" onmouseout="t2(1);">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr onmouseover="t1(2);" onmouseout="t2(2);">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
<script>
function t1(n){
var myTrs=document.getElementsByTagName("tr")[n];
//console.log(myTrs);
myTrs.style.backgroundColor="red";
}
function t2(n){
var myTrs=document.getElementsByTagName("tr")[n];
myTrs.style.backgroundColor="white";
}
</script>
</body>
该示例当鼠标移动到某一行时,改行变为红色,移开改行变为白色;
以上代码需要将每行都进行绑定,即需要将每个tr标签进行绑定,如果tr标签太多的话,该方法可能不适用;我们可以通过以下方式来实现:
<table border="1" width="300px"> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table> <script> var myTrs=document.getElementsByTagName("tr"); var len=myTrs.length; for(var i=0;i<len;i++){ myTrs[i].onmouseover=function(){ this.style.backgroundColor="red"; // myTrs[i].style.backgroundColor="red";这种写法不可以 //谁调用该函数,this就指向谁 } myTrs[i].onmouseout=function(){ this.style.backgroundColor=""; //谁调用该函数,this就指向谁 } } </script>
这种方式简化了一点代码;执行结果是一样的

浙公网安备 33010602011771号