js中的觸發(fā)事件對(duì)象event.srcElement與event.target詳解
介紹
IE下,event對(duì)象有srcElement屬性,但是沒(méi)有target屬性;
Firefox下,event對(duì)象有target屬性,但是沒(méi)有srcElement屬性.但他們的作用是相當(dāng)?shù)模矗?/p>
firefox 下的 event.target
= IE 下的 event.srcElement
解決方法
使用obj = event.srcElement ? event.srcElement : event.target;
或:var evtTarget = event.target || event.srcElement;
event.srcElement.id event.srcElement.tagname event.srcElement.type event.srcElement.value event.srcElement.name event.srcElement.classname event.srcElement.parentelement event.srcElement.getattribute event.srcElement.children event.srcElement.lastChild event.srcElement.ChildNode event.srcElement.selectedIndex
js將html的所有控件都看成是一個(gè)個(gè)對(duì)象,通過(guò)js的各個(gè)屬性,就能對(duì)其進(jìn)行操作處理,js里對(duì)象的整體結(jié)構(gòu)是樹(shù)形的結(jié)構(gòu)。一層一層的追溯,即可獲取需要的結(jié)果。
event.srcElement
:表示的當(dāng)前的這個(gè)事件源。
event.srcElement.parentNode
:表示當(dāng)前事件源的父節(jié)點(diǎn)。
parentNode
:父節(jié)點(diǎn),也就是上一層的節(jié)點(diǎn)??梢允侨魏我粋€(gè)標(biāo)簽。
event.srcElement.firstChild
:當(dāng)前事件的第一個(gè)節(jié)點(diǎn),如果節(jié)點(diǎn)是input,通過(guò)event.srcElement.firstChild.value
就可以獲取此input的值。
event.srcElement.parentElement
:是指在鼠標(biāo)所在對(duì)象的上一個(gè)對(duì)象。
event.srcElement.children
:當(dāng)前節(jié)點(diǎn)下對(duì)象的個(gè)數(shù),有多個(gè)的話就是個(gè)數(shù)組,如當(dāng)前節(jié)點(diǎn)下有2個(gè)input的對(duì)象,要獲取這兩個(gè)可以用event.srcElement.children[0]
與 event.srcElement.children[1]
分別獲取。
常用如下:
1、event.srcElement.parentNode.tagName;
<div> <input type="button" value="父元素標(biāo)簽" onclick="alert(event.srcElement.parentNode.tagName)"> </div>
結(jié)果:DIV
第一個(gè)子標(biāo)簽為 event.srcElement.firstChild
最后個(gè)一個(gè)是 event.srcElement.lastChild
當(dāng)然也可以用 event.srcElement.children[i]
, event.srcElement.ChildNode[i]
2、event.srcElement.parentElement
是指在鼠標(biāo)所在對(duì)象的上一個(gè)對(duì)象
<table border=1 width="200"> <tr title="tr測(cè)試"><td onclick="alert(event.srcElement.parentElement.title)">tr</td></tr> </table>
3、event.srcElement.tagName
得到點(diǎn)擊位置的標(biāo)簽名稱
4、event.srcElement.title
得到當(dāng)前標(biāo)簽title屬性值
5、event.srcElement.options[event.srcElement.selectedIndex].value
例1:
<select name="selectname" onchange="alert(event.srcElement.options[event.srcElement.selectedIndex].value)" > <option value="1-">1</option> <option value="2-">2</option> <option value="3-">3</option> <option value="4-">4</option> <option value="5-">5</option> </select>
例2:
<script> function a(){ alert("您點(diǎn)擊的標(biāo)記是:" + event.srcElement.tagName) } </script> <body onclick="a()"> 點(diǎn)鼠標(biāo)測(cè)試<br> //BODY <input value='test input'/> //INPUT <a href=#>test</a> //A <div>測(cè)試div</div> //DIV <p>測(cè)試p</p> //P <span>測(cè)試span</span><br /> //SPAN <div> <a href="/" rel="external nofollow" onmouseover="alert(event.srcElement.parentElement.tagName);">放在我上面</a> //DIV </body>
例3:
<div id="div_001"> <form id="form_001"> <input type="button" id="button_001_id" name="button_001_Name" value="單擊查看" class="button_001_Class" onclick="Get_srcElement(this)"> </form> </div> <script> function Get_srcElement() { var srcElement="" srcElement += "\n" + "event.srcElement.id : " + event.srcElement.id; srcElement += "\n" + "event.srcElement.tagName : " + event.srcElement.tagName; srcElement += "\n" + "event.srcElement.type : " + event.srcElement.type; srcElement += "\n" + "event.srcElement.value : " + event.srcElement.value; srcElement += "\n" + "event.srcElement.name : " + event.srcElement.name; srcElement += "\n" + "event.srcElement.className : " + event.srcElement.className; srcElement += "\n" + "event.srcElement.parentElement.id : " + event.srcElement.parentElement.id; srcElement += "\n" + "event.srcElement.parentNode.id : " + event.srcElement.parentNode.id; srcElement += "\n" + "event.srcElement.getattribute : " + event.srcElement.getAttribute; alert(srcElement) } </script>
結(jié)果如圖:
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
webpack學(xué)習(xí)筆記之代碼分割和按需加載的實(shí)例詳解
本篇文章主要介紹了webpack學(xué)習(xí)筆記之代碼分割和按需加載的實(shí)例詳解,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07uni-app開(kāi)發(fā)案例之video視頻組件
最近uni-app使用video組件碰到的一系列問(wèn)題,所以下面這篇文章主要給大家介紹了關(guān)于uni-app開(kāi)發(fā)案例之video視頻組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09js從數(shù)組中刪除指定值(不是指定位置)的元素實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇js從數(shù)組中刪除指定值(不是指定位置)的元素實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09firefox下javascript實(shí)現(xiàn)高亮關(guān)鍵詞的方法
“點(diǎn)睛”的廣告代碼,很牛B,本想從中找出在FireFox下如何實(shí)現(xiàn)findText及pasteHTML類似效果的,我看了大半天,楞是沒(méi)有看出個(gè)所以然來(lái)!還是自己慢慢研究吧。2007-07-07