亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JS中的THIS和WINDOW.EVENT.SRCELEMENT詳解

2024-05-06 16:20:45
字體:
來源:轉載
供稿:網友

對于js初學著必須理解this和srcElement的應用,這也是面試中經??嫉降?。下面我們就通過幾個示例來詳細了解下

我們先看一個簡單的例子:

代碼如下:

<input type="text" onblur="alert(this.value)"/>完全沒有問題。

完全沒有問題。

那么什么情況下不可以用?

 

 
  1. fuction method() 
  2. alert(this.value); 
  3. <input type="text" onblur="method()"/> 

這個就不可以,因為method()是被響應函數調用的函數。

那么這種情況下怎么辦?

方法一:

 

 
  1. fuction method(btn) 
  2. alert(btn.value); 
  3. <input type="text" onblur="method(this)"/> 

沒問題!

方法二:

 

 
  1. fuction method() 
  2. alert(window.event.srcElement.value); 
  3. <input type="text" onblur="method()"/> 

沒問題!window.event.srcElement取得觸發事件的控件

我們在看一個稍微繞一點的例子

 

 
  1. <head> 
  2. <script type="text/javascript"
  3. function InitEvent() { 
  4. var inputs = document.getElementsByTagName_r("input"); 
  5. for (var i = 0; i < inputs.length; i++) { 
  6. inputs[i].onblur = OnblurEvent; 
  7. function OnblurEvent() { 
  8. // OnblurEvent是onblur的響應函數,而不是被響應函數調用的函數 
  9. // 所以可以用this來獲取發生事件的對象 
  10. if (this.value.length > 0) { 
  11. this.style.backgroundColor = "white"
  12. else { 
  13. this.style.backgroundColor = "red"
  14. </script> 
  15. </head> 
  16. <body onload="InitEvent()"
  17. <input id="Text1" type="text" /> 
  18. <input id="Text2" type="text" /> 
  19. <input id="Text3" type="text" /> 
  20. </body> 
  21. </html> 

我們再來看看2者之間的區別和聯系

this:

下面先看一個例子:

 

 
  1. <html> 
  2. <title>this與srcElement的區別</title> 
  3. <head> 
  4. <script type="text/javascipt>" 
  5. function btnClick(){ 
  6. alert(this.value); 
  7. </script> 
  8. </head> 
  9. <body> 
  10. <input type="button" value="單擊" onclick="btnClick()"/> 
  11. </body> 
  12. </html> 

此時彈出的答案為“undefined”,說明在調用函數時不能使用this.屬性來獲取。再看下一個例子:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml" > 
  3. <head> 
  4. <title>無標題頁</title> 
  5. <script type="text/javascript"
  6. function btnClick(btn){ 
  7. alert(btn.value); 
  8. </script> 
  9. </head> 
  10. <body> 
  11. <input type="button" onclick="btnClick(this)" value="單擊" /> 
  12.  
  13. </body> 
  14. </html> 

此時得出的答案為“單擊”,此時為什么可以呢?從代碼中可以看出,在onclick事件調用函數btnClick()時,將this當作參數傳遞給了函數。

綜合以上:在函數調用時不能直接使用this.屬性來獲取,而必須將this當作參數傳遞。

window.event.srcElement:

下面看一個例子:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml" > 
  3. <head> 
  4. <title>無標題頁</title> 
  5. <script type="text/javascript"
  6. function btnClick(){ 
  7. alert(window.event.srcElement.value); 
  8. </script> 
  9. </head> 
  10. <body> 
  11. <input type="button" onclick="btnClick()" value="單擊" /> 
  12.  
  13. </body> 
  14. </html> 

此時得出的答案為“單擊”,說明在調用函數時可以使用window.event.srcElement.屬性來獲取。

為什么this不能直接使用而window.event.srcElement可以直接使用呢?從單純的字面上說this的意思是“當前”。在函數調用時,沒有指定具體是哪一個控件,在函數中直接用this是不可以的。在第二段代碼中就將this當成了參數傳遞,所以能得出正確的答案。

this和window.event.srcElement的使用區別

其實是:如果要直接使用this.屬性,此時的函數不能是被調用的而必須是響應函數,而window.event.srcElement則無此限制。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久成人精品| 81精品国产乱码久久久久久| 91精品国产高清久久久久久久久| 欧美大成色www永久网站婷| 91日本在线视频| 日韩av中文字幕在线播放| 久久久久这里只有精品| 国产一区二区三区三区在线观看| 91久久夜色精品国产网站| 国产精品久久久久久久9999| y97精品国产97久久久久久| 久久91亚洲人成电影网站| 亚洲国产精品美女| 欧美激情一区二区久久久| 日韩一区二区福利| 日韩大陆欧美高清视频区| 日韩在线播放一区| 国产精品电影一区| 亚洲xxxx18| 91久久在线观看| 成人国产亚洲精品a区天堂华泰| 国产欧美精品xxxx另类| 国产精品流白浆视频| 国产色视频一区| 国产午夜一区二区| 日韩成人在线网站| 国产精品久久久久久婷婷天堂| 色婷婷亚洲mv天堂mv在影片| 欧美色播在线播放| 久久久久久久一区二区| 欧美激情视频网| 成人网在线视频| 国产裸体写真av一区二区| 欧美日韩国产成人高清视频| 色妞欧美日韩在线| 欧美老妇交乱视频| 国产这里只有精品| 欧美激情精品久久久久久久变态| 亚洲人高潮女人毛茸茸| 日韩性生活视频| 国产精品视频大全| 亚洲精品永久免费| 欧美一级片一区| 亚洲色图校园春色| 国产精品久久久久久久av大片| 日本欧美一二三区| 亚洲久久久久久久久久| 国外成人在线直播| 欧美成在线观看| 欧美亚洲国产视频| 日韩av观看网址| 69视频在线免费观看| 欧美裸身视频免费观看| 国产91精品久久久| 久久精品国产欧美激情| 成人看片人aa| 成人精品一区二区三区电影黑人| 国产精品最新在线观看| 亚洲加勒比久久88色综合| 欧美性生交xxxxxdddd| www.亚洲免费视频| 精品一区二区三区电影| 日韩在线播放av| 色偷偷88888欧美精品久久久| 人人澡人人澡人人看欧美| 亚洲精品自产拍| 久久综合网hezyo| 国产精品成人va在线观看| 欧美精品一区二区免费| 久久影视电视剧免费网站| 久久艹在线视频| 久久久久久尹人网香蕉| 亚洲免费精彩视频| 日韩小视频在线观看| 在线亚洲午夜片av大片| 欧美日韩裸体免费视频| 久久久久久久久久久久久久久久久久av| 97在线观看免费| 92福利视频午夜1000合集在线观看| 毛片精品免费在线观看| 久久久久久亚洲精品不卡| 奇米影视亚洲狠狠色| 国产精品久久久久久一区二区| 亚洲国产精品人久久电影| 亚洲精品98久久久久久中文字幕| 国产va免费精品高清在线观看| 亚洲成人激情在线观看| 亚洲一区二区三区乱码aⅴ| 91精品国产色综合久久不卡98口| 在线观看欧美日韩| 高清欧美性猛交xxxx| 日韩激情片免费| 亚洲视频在线观看| 日韩电影视频免费| 韩日欧美一区二区| 欧美成人剧情片在线观看| 国产91精品久久久久久久| 久久精品人人爽| 一本色道久久综合亚洲精品小说| 国产精品www色诱视频| 亚洲欧美日韩精品久久亚洲区| 国产精品高潮呻吟久久av黑人| 亚洲日本中文字幕免费在线不卡| 亚洲视频在线观看视频| 日韩欧美国产中文字幕| 久久久久在线观看| 91视频-88av| 欧洲精品久久久| 国产男女猛烈无遮挡91| 国产精品www色诱视频| 日韩中文字幕精品| 中文字幕自拍vr一区二区三区| 欧美黑人性猛交| 国产精品免费观看在线| 欧美性高潮床叫视频| 欧美日韩在线视频一区二区| 一区二区三区四区在线观看视频| 国产视频久久久| 国产综合色香蕉精品| 亚洲电影免费观看高清完整版在线| 亚洲变态欧美另类捆绑| 91成人在线视频| 亚洲第一精品夜夜躁人人爽| 国产精品久久久久久亚洲影视| 久久久久免费精品国产| 久久久久久久激情视频| 久久久久中文字幕2018| 欧美亚洲激情视频| 国产v综合v亚洲欧美久久| 国产欧美一区二区三区四区| 亚洲男女自偷自拍图片另类| 国产视频丨精品|在线观看| 国产精品视频免费在线观看| 亚洲人成网站色ww在线| 精品久久久久久亚洲精品| 九九热99久久久国产盗摄| 91免费国产视频| 韩国19禁主播vip福利视频| 国产精品久久电影观看| 欧美成人激情视频| 欧美亚洲一级片| 成人免费视频在线观看超级碰| 中文字幕国产亚洲| 国产精品久久久久av| 久久久久日韩精品久久久男男| 青青久久aⅴ北条麻妃| 午夜精品久久久久久99热软件| 亚洲精品在线不卡| 97热在线精品视频在线观看| 国产亚洲精品美女久久久久| 精品香蕉在线观看视频一| 国产精品久久综合av爱欲tv| 人人做人人澡人人爽欧美| 国产亚洲欧美日韩一区二区| 欧美精品videos性欧美| 国产97在线亚洲| 亚洲图片欧美日产| 人妖精品videosex性欧美| 国产精品久久久亚洲| 北条麻妃99精品青青久久| 国产99久久久欧美黑人| 黄色成人av网| 欧美激情在线一区| 97碰在线观看|