js中的觸發(fā)事件對(duì)象event.srcElement與event.target詳解
介紹
IE下,event對(duì)象有srcElement屬性,但是沒有target屬性;
Firefox下,event對(duì)象有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的所有控件都看成是一個(gè)個(gè)對(duì)象,通過js的各個(gè)屬性,就能對(duì)其進(jìn)行操作處理,js里對(duì)象的整體結(jié)構(gòu)是樹形的結(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,通過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í)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
webpack學(xué)習(xí)筆記之代碼分割和按需加載的實(shí)例詳解
本篇文章主要介紹了webpack學(xué)習(xí)筆記之代碼分割和按需加載的實(shí)例詳解,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
js從數(shù)組中刪除指定值(不是指定位置)的元素實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨s從數(shù)組中刪除指定值(不是指定位置)的元素實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
firefox下javascript實(shí)現(xiàn)高亮關(guān)鍵詞的方法
“點(diǎn)睛”的廣告代碼,很牛B,本想從中找出在FireFox下如何實(shí)現(xiàn)findText及pasteHTML類似效果的,我看了大半天,楞是沒有看出個(gè)所以然來!還是自己慢慢研究吧。2007-07-07

