Hi there,
I think your confusion is caused by the fact that it is unclear what is a jQuery matched set and what is a single JavaScript object. Many jQuery methods return a matched set on which you can operate. Stuff like addClass works on the entire matched set (and basically loops over the items in the set and applies the class).
However, not all JavaScript properties (such as the value of a text box) become available on the matched set. They have to be supported by jQuery. So .value doesn't work, while val() does as it has been implemented by jQuery.
Finally, a single, JavaScript object (taken out of the matched set), supports its own properties, but no JjQuery methods anymore.
With that in mind, I hope the following comments explain why something does or doesn't work:
Code:
$("#Button1").get(0).value = "Click Me"; // it works; single object, no matched set;
// this object just happens to have a value property.
$("#Button1").value = "Click Me"; // it doesn't work because the matched set
// doesn't have a value property or method so it doesn't
// know what to with it.
$("#Button1").get(0).addClass("NewClassName"); // it doesn't work because addClass is
// a jQuery method defined for the matched set,
// while get(0) returns a single JavaScript object
$("#Button1").addClass("NewClassName"); // it works, because the matched set has an
// addClass method. It loops over all elements in the
// collection (in this case there should be only one) and
// applies the CSS class you specify.
Hope this helps,
Imar