2014-02-28 37 views
3
<div id="a">ONE</div> 
<div id="b">TWO</div> 
<div id="c">THREE</div> 
var el = document.getElementsByTagName("div"); 

for (var i = 0; i < el.length; i++) (function(){ 
el.addEventListener("click",function(){ 
    console.log(this.id + " " + this.innerHTML); 
},false); 
})(i); 

給我錯誤「el.addEventListener不是函數」,是什麼問題?JavaScript關閉el.addEventListener不是函數

回答

0

你錯過[i](指數)(必須是el[i]),認爲addEventListener並不在IE瀏覽器版本。要解決這個問題,你可以這樣做:

function evt(elem,type,fn) { // element, event type, function 
    if (elem.addEventListener) { 
     elem.addEventListener(type,fn,false); 
    } else { 
     elem.attachEvent("on" + fn); 
    } 
} 
5

elHTMLCollection,你忘了使用索引:在你的代碼

el[i].addEventListener("click",function(){...};