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é)點(diǎn)。
parentNode:父節(jié)點(diǎn),也就是上一層的節(jié)點(diǎn)??梢允侨魏我粋€標(biāo)簽。
event.srcElement.firstChild:當(dāng)前事件的第一個節(jié)點(diǎn),如果節(jié)點(diǎn)是input,通過event.srcElement.firstChild.value就可以獲取此input的值。
event.srcElement.parentElement:是指在鼠標(biāo)所在對象的上一個對象。
event.srcElement.children:當(dāng)前節(jié)點(diǎn)下對象的個數(shù),有多個的話就是個數(shù)組,如當(dāng)前節(jié)點(diǎn)下有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 得到點(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)測試<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)文章
JavaScript中隨機(jī)數(shù)方法?Math.random()
這篇文章主要介紹了JavaScript中隨機(jī)數(shù)方法?Math.random(),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
JS的鼠標(biāo)監(jiān)聽mouseup鼠標(biāo)抬起失效原因及解決
這篇文章主要為大家介紹了JS的鼠標(biāo)監(jiān)聽mouseup鼠標(biāo)抬起失效原因及解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
JavaScript加強(qiáng)之自定義event事件
event事件在本文以自定義的方式出現(xiàn),感興趣的朋友可以參考下,希望對大家有所幫助2013-09-09

