js中的觸發(fā)事件對象event.srcElement與event.target詳解
介紹
IE下,event對象有srcElement屬性,但是沒有target屬性;
Firefox下,event對象有target屬性,但是沒有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的所有控件都看成是一個個對象,通過js的各個屬性,就能對其進(jìn)行操作處理,js里對象的整體結(jié)構(gòu)是樹形的結(jié)構(gòu)。一層一層的追溯,即可獲取需要的結(jié)果。
event.srcElement
:表示的當(dāng)前的這個事件源。
event.srcElement.parentNode
:表示當(dāng)前事件源的父節(jié)點。
parentNode
:父節(jié)點,也就是上一層的節(jié)點??梢允侨魏我粋€標(biāo)簽。
event.srcElement.firstChild
:當(dāng)前事件的第一個節(jié)點,如果節(jié)點是input,通過event.srcElement.firstChild.value
就可以獲取此input的值。
event.srcElement.parentElement
:是指在鼠標(biāo)所在對象的上一個對象。
event.srcElement.children
:當(dāng)前節(jié)點下對象的個數(shù),有多個的話就是個數(shù)組,如當(dāng)前節(jié)點下有2個input的對象,要獲取這兩個可以用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
第一個子標(biāo)簽為 event.srcElement.firstChild
最后個一個是 event.srcElement.lastChild
當(dāng)然也可以用 event.srcElement.children[i]
, event.srcElement.ChildNode[i]
2、event.srcElement.parentElement
是指在鼠標(biāo)所在對象的上一個對象
<table border=1 width="200"> <tr title="tr測試"><td onclick="alert(event.srcElement.parentElement.title)">tr</td></tr> </table>
3、event.srcElement.tagName
得到點擊位置的標(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("您點擊的標(biāo)記是:" + event.srcElement.tagName) } </script> <body onclick="a()"> 點鼠標(biāo)測試<br> //BODY <input value='test input'/> //INPUT <a href=#>test</a> //A <div>測試div</div> //DIV <p>測試p</p> //P <span>測試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é)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
webpack學(xué)習(xí)筆記之代碼分割和按需加載的實例詳解
本篇文章主要介紹了webpack學(xué)習(xí)筆記之代碼分割和按需加載的實例詳解,具有一定的參考價值,有興趣的可以了解一下2017-07-07js從數(shù)組中刪除指定值(不是指定位置)的元素實現(xiàn)代碼
下面小編就為大家?guī)硪黄猨s從數(shù)組中刪除指定值(不是指定位置)的元素實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09firefox下javascript實現(xiàn)高亮關(guān)鍵詞的方法
“點睛”的廣告代碼,很牛B,本想從中找出在FireFox下如何實現(xiàn)findText及pasteHTML類似效果的,我看了大半天,楞是沒有看出個所以然來!還是自己慢慢研究吧。2007-07-07