天天看點

JavaScript擷取onclick、onchange等事件值的代碼

  這裡主要是用到了getAttributeNode()這個方法,它擷取的是屬性節點,忽略屬性和事件的差别,具體示例如下,感興趣的朋友可以參考下哈希望對大家有所幫助

  今天小菜處理下拉菜單級聯問題時,想擷取HTML标簽中某個事件的内容,也就是值,比如從<select id="city" οnchange="javascript:test();"></select>中擷取javascript:test();。小菜想通過事件中的資訊,确定下一級的菜單,但是這個貌似很簡單的問題,卻讓小菜糾結了一番。 

稍微懂點JQuery的童鞋,可能會嘗試這樣擷取:

$(document).ready(function(){
    var onchangeValue = $("#city").attr("onchange");
    alert(onchangeValue);
});      

  一般情況下,這樣的确可以擷取到,因為JQuery萬能的attr方法,可以擷取标簽中任何的”屬性”,即使是一個事件,也可以直接擷取内容,這裡onchange就是事件。 

但小菜在實際開發環境中,用這個方法怎麼也擷取不到,得到的均是undefined。 

在糾結之際,發現了另外一種用純JavaScript實作擷取的方法。 

具體代碼如下: 

$(document).ready(function(){
    var onchangeValue = document.getElementById("city").getAttributeNode("onchange").nodeValue;
    alert(onchangeValue);
});      

  簡單說一下,這裡主要是用到了getAttributeNode()這個方法,它擷取的是屬性節點,忽略屬性和事件的差别,類似于對XML的處理,然後再用nodeValue獲得屬性節點的節點值。 

如果使用getAttribute()方法,由于onchange是一個事件,是以擷取的是一個函數對象,無法當成字元串處理。 

轉載于:https://www.cnblogs.com/chaizp/p/4802739.html

繼續閱讀