Why am I getting TypeError: obj.addEventListener is not a function?

dom-events, javascript

Solution

`document.getElementsByTagName` returns a NodeList of DOM elements. Each element has an `addEventListener` function, but the array doesn't have one.

Loop over it:

function showWinner (){
    var aTags = document.getElementsByTagName("a");
    for (var i=0;i<aTags.length;i++){
        addEvent(aTags[i], 'click', alertWinner);
    }
}

Problem

Here's my code: ``` function addEvent( obj, type, fn ) { if ( obj.attachEvent ) { obj['e'+type+fn] = fn; obj[type+fn] = function(){obj['e'+type+fn]( window.event );} obj.attachEvent( 'on'+type, obj[type+fn] ); } else obj.addEventListener(type, fn, false); } function alertWinner(){ alert("You may be a winner!"); } function showWinner (){ var aTag = document.getElementsByTagName("a"); addEvent(aTag, 'click', alertWinner); } showWinner(); ``` Basically, I'm working in the firebug console and trying to get an alert to pop up when any a tag is clicked. I can't see the problem that results in this not working and giving me the error stated in my questions title (viewed in firebug). Anybody?

Original source