JS的event.srcElement與event.target(觸發事件對象)


IE下,event對象有srcElement屬性,但是沒有target屬性;

Firefox下,event對象有target屬性,但是沒有srcElement屬性.但他們的作用是相當的,即:

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的各個屬性,就能對其進行操作處理,js里對象的整體結構是樹形的結構。一層一層的追溯,即可獲取需要的結果。

event.srcElement:表示的當前的這個事件源

event.srcElement.parentNode:表示當前事件源的父節點。

 parentNode:父節點,也就是上一層的節點。可以是任何一個標簽。

event.srcElement.firstChild:當前事件的第一個節點,如果節點是input,通過event.srcElement.firstChild.value就可以獲取此input的值。

event.srcElement.parentElement:是指在鼠標所在對象的上一個對象。

event.srcElement.children:當前節點下對象的個數,有多個的話就是個數組,如當前節點下有2個input的對象,要獲取這兩個可以用event.srcElement.children[0] 與 event.srcElement.children[1]分別獲取。

常用如下:

1.event.srcElement.parentNode.tagName; 

<div> 
    <input type="button" value="父元素標簽" onclick="alert(event.srcElement.parentNode.tagName)"> 
</div> 

結果:DIV

第一個子標簽為 event.srcElement.firstChild 

最后個一個是   event.srcElement.lastChild 

當然也可以用   event.srcElement.children[i] , event.srcElement.ChildNode[i]

2.event.srcElement.parentElement是指在鼠標所在對象的上一個對象 

<table border=1 width="200"> 
    <tr title="tr測試"><td onclick="alert(event.srcElement.parentElement.title)">tr</td></tr> 
</table>

3.event.srcElement.tagName 得到點擊位置的標簽名稱

4.event.srcElement.title 得到當前標簽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("您點擊的標記是:" + event.srcElement.tagName)
}
</script>

<body  onclick="a()">
         點鼠標測試<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="/" onmouseover="alert(event.srcElement.parentElement.tagName);">放在我上面</a>
    </div>  //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);    
}

結果如圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM