Got it. Thanks Mike. So this code would have made better sense: $("button:first").click(function(event){alert(this);})
On Jan 13, 5:52 pm, "Michael Geary" <m...@mg.to> wrote: > Do you have Firebug? If not, get it and enable the Console and Script tabs, > then enter these statements into the console input line, one at a time with > Enter after each one: > > $("button") > > $("button")[0] > > $( $("button")[0] ) > > Each one will log an object to the console log. Click on each of these > objects to look at its properties. > > You'll find that the first one is a jQuery object - which happens to be an > array of DOM elements. Take the [0] of that object, as in the second > expression, and now you have the first DOM element in that array. Since it's > not a jQuery object, it doesn't have a .bind() method. Instead, it has the > properties and methods of any other DOM element. > > Now wrap the whole thing in another $() function call, as in the third > expression, and you're creating a new jQuery object that happens to contain > the same DOM element as the first one. > > -Mike > > > From:bittermonkey > > > I'm fairly new to the framework and I've been messing around a bit. > > These below confuses me. > > > 1. Why is this snippet not working? Firefox's error console > > throws an error saying < $("button")[0].bind is not a > > function > $("button")[0].bind("click", function(event){alert(this)}); > > > 2. And why does this work? > > $($("button")[0]).bind("click", function(event){alert(this)});