標籤:rip tag alt 地方 oct win lis ges css
因為迴圈是非常快的,我們手動點擊的時候,for迴圈已經迴圈完了。如果在迴圈裡面添加點擊事件,點擊事件的i的值就是迴圈結果的那個值,而不是對應的迴圈的值,此時,我們就需要用到this 來實現 點擊哪一個,this就指向哪一個
this: 指的是當前的對象, 是關鍵詞,不能當做變數名,只能讀,不能寫,它的值只能用來用,而不能修改
通常,this有2種用法,第一種,在函數外部使用,此時,this的值指向的是Windows
第二種,在函數內部使用。又分為2種情況,1,直接調用函數,this同樣指向的是Windows 2,被事件調用,並且是以賦值的形式出現的,此時this指向的是誰調用了函數,this就指向誰的。這就很好地方便了再迴圈裡面使用this來實現,每一個的事件發生。
可以通過以下例子開具體瞭解:
首先,我們先來建立幾個div 實現,點擊任意一個div 這個被點擊的div的背景顏色就相應的作出改變 改變成為紅色
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>this批量改變元素的樣式</title>
<link rel="stylesheet" href="../css/this批量改變元素的樣式.css">
</head>
<body>
<div id="content">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<script src="../js/this批量改變元素的樣式.js"></script>
</body>
</html>
css
.box{
width: 200px;
height: 200px;
margin-right: 20px;
background-color: gold;
float: left;
}
此時,頁面中就有5個顏色為金色的div
js代碼:
var bigDiv=document.getElementById(‘content‘);
var listOfDiv=bigDiv.getElementsByTagName(‘div‘);
for(var i=0;i<listOfDiv.length;i++){
listOfDiv[i].onclick=function(){
this.style.backgroundColor=‘red‘;
};
}
這樣就可以實現,任意點擊一個div 這個div的顏色就變為紅色
this的用法