JavaScript中的this妙用實(shí)例分析
本文實(shí)例講述了JavaScript中的this妙用。分享給大家供大家參考,具體如下:
JavaScript關(guān)鍵字this始JS腳本能夠根據(jù)使用這個(gè)關(guān)鍵字的上下文將值傳遞給函數(shù)。
我們先來(lái)看如下一個(gè)網(wǎng)頁(yè),在用戶(hù)單擊鏈接之后,彈出一個(gè)alert框,然后再轉(zhuǎn)到href屬性所指的網(wǎng)頁(yè)
HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript中的this妙用</title> <script type="text/javascript" src="js/script.js"></script> </head> <body> <p style="text-algin:center;"> 你好,點(diǎn)擊這里去<a id="redirect" rel="external nofollow" >舊物商店</a> </p> </body> </html>
JS:
window.onload = initAll; function initAll(){ document.getElementById("redirect").onclick = initRedirect; } function initRedirect(){ alert("這是我創(chuàng)建的舊物商城,歡迎訪問(wèn)!"); window.location = this; return false; }
你可能會(huì)主要到,代碼中并沒(méi)有引用特定的網(wǎng)頁(yè)——這是this關(guān)鍵字的作用之一。this替我們完成的工作之一是從HTML鏈接獲得URL(也就是a標(biāo)簽的href屬性)。由于采用這種方式,如果以后腳本改為指向其他的頁(yè)面而不是舊物商店頁(yè)面,就不必修改JS。實(shí)際上,可以讓W(xué)EB站點(diǎn)上的所有鏈接都調(diào)用這個(gè)相同的JS代碼,這一行代碼都會(huì)自動(dòng)獲得相應(yīng)的href值。
這樣寫(xiě)還有一個(gè)好處:如果用戶(hù)的瀏覽器不理解JavaScript(比如禁用了JS),那么它只會(huì)加載HTML頁(yè)面,而不顯示alert提示,當(dāng)他們點(diǎn)擊鏈接時(shí),會(huì)像一般情況下那樣加載頁(yè)面,不會(huì)發(fā)生錯(cuò)誤,沒(méi)有任何問(wèn)題。
我們?cè)趤?lái)看一個(gè)switch/case例子,創(chuàng)建如下頁(yè)面:
HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript中的this妙用</title> <script type="text/javascript" src="js/script.js"></script> </head> <body> <h2>閑置二手圖書(shū)</h2> <form action="#"> <input type="button" id="Java" value="Java" /> <input type="button" id="JavaScript" value="JavaScript" /> <input type="button" id="MySQL" value="MySQL" /> <input type="button" id="Html" value="HTML5" /> </form> </body> </html>
JS:
window.onload = initAll; function initAll(){ document.getElementById("Java").onclick = viewDetail; document.getElementById("JavaScript").onclick = viewDetail; document.getElementById("MySQL").onclick = viewDetail; document.getElementById("Html").onclick = viewDetail; } function viewDetail(){ console.log("this.id="+this.id); switch(this.id){ case "Java" : alert("《Java程序員基本功》這本書(shū)是李剛寫(xiě)的,在我的商店售價(jià)30元!"); break; case "JavaScript" : alert("《JavaScript語(yǔ)言精粹》這本書(shū)是Yahoo的一位工程師寫(xiě)的,在我的商店售價(jià)15元!"); break; case "MySQL" : alert("《MySQL入門(mén)很簡(jiǎn)單》這本書(shū)附帶關(guān)盤(pán),這個(gè)年代其實(shí)沒(méi)什么卵用了,它在我的商店售價(jià)28元!"); break; case "Html" : alert("《HTML5秘籍》這本書(shū)是圖靈系統(tǒng)的圖書(shū),非常值得擁有,它在我的商店售價(jià)25元,賣(mài)的非常好!"); break; default : alert("沒(méi)有這本書(shū)"); } }
直接用this.id
作為switch的參數(shù)也是可以的。
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專(zhuān)題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js中的this關(guān)鍵字詳解
- javascript this用法小結(jié)
- JS中的this變量的使用介紹
- javascript中this的四種用法
- 改變javascript函數(shù)內(nèi)部this指針指向的三種方法
- 關(guān)于js里的this關(guān)鍵字的理解
- Javascript this關(guān)鍵字使用分析
- JS中改變this指向的方法(call和apply、bind)
- JS函數(shù)this的用法實(shí)例分析
- Javascript this指針
- 淺析JavaScript中var that=this
- this,this,再次討論javascript中的this,超全面(經(jīng)典)
相關(guān)文章
JavaScript從0開(kāi)始構(gòu)思表情插件
在項(xiàng)目開(kāi)發(fā)階段很多項(xiàng)目都會(huì)用到表情插件,接下來(lái)通過(guò)本文給大家介紹了JavaScript從0開(kāi)始構(gòu)思表情插件 的相關(guān)資料,需要的朋友可以參考下2016-07-07JS函數(shù)的call和apply的實(shí)現(xiàn)方法區(qū)別分析
這篇文章主要為大家介紹了JS函數(shù)的call和apply的實(shí)現(xiàn)方法區(qū)別分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10頁(yè)面點(diǎn)擊小紅心js實(shí)現(xiàn)代碼
有時(shí)候我們經(jīng)??吹接行゜log出現(xiàn)一些點(diǎn)擊頁(yè)面出現(xiàn)小紅心的效果,很是喜歡,這里就為大家分享一下代碼直接引用即可2018-05-05JS實(shí)現(xiàn)的新聞列表自動(dòng)滾動(dòng)效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的新聞列表自動(dòng)滾動(dòng)效果,涉及javascript基于時(shí)間函數(shù)的頁(yè)面元素屬性動(dòng)態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2019-01-01uniapp實(shí)現(xiàn)微信小程序支付(前端)詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)微信小程序支付(前端)的相關(guān)資料,發(fā)現(xiàn)網(wǎng)上教程很多,單只針對(duì)小程序的簡(jiǎn)單清晰的流程卻很少,文字通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07button沒(méi)寫(xiě)type=button會(huì)導(dǎo)致點(diǎn)擊時(shí)提交
點(diǎn)擊了一個(gè)彈窗中的按鈕,想到彈窗消失了,經(jīng)測(cè)試后發(fā)現(xiàn)button 沒(méi)寫(xiě)type=button會(huì)導(dǎo)致點(diǎn)擊時(shí)提交2014-03-03JS獲取客戶(hù)端IP地址、MAC和主機(jī)名的7個(gè)方法匯總
這篇文章主要介紹了JS獲取客戶(hù)端IP地址、MAC和主機(jī)名的7個(gè)方法匯總,JS本身是不支持獲取IP地址等信息的,本文通過(guò)其它方法實(shí)現(xiàn),需要的朋友可以參考下2014-07-07BootStrap入門(mén)學(xué)習(xí)第一篇
這篇文章主要為大家詳細(xì)介紹了BootStrap入門(mén)學(xué)習(xí)第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08