text: function( text ) {
if ( typeof text != "object" && text != null )
- return this.empty().append( document.createTextNode( text ) );
+ return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
var ret = "";
append: function() {
return this.domManip(arguments, true, false, function(elem){
- this.appendChild( elem );
+ if (this.nodeType == 1)
+ this.appendChild( elem );
});
},
prepend: function() {
return this.domManip(arguments, true, true, function(elem){
- this.insertBefore( elem, this.firstChild );
+ if (this.nodeType == 1)
+ this.insertBefore( elem, this.firstChild );
});
},
},
add: function( selector ) {
- return this.pushStack( jQuery.merge(
+ return !selector ? this : this.pushStack( jQuery.merge(
this.get(),
selector.constructor == String ?
jQuery( selector ).get() :
} else
return this.each(function(){
+ if ( this.nodeType != 1 )
+ return;
+
if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
this.checked = (jQuery.inArray(this.value, value) >= 0 ||
jQuery.inArray(this.name, value) >= 0);
var obj = this;
if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
- obj = this.getElementsByTagName("tbody")[0] || this.appendChild( document.createElement("tbody") );
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
var scripts = jQuery( [] );
}
// Handle case when target is a string or something (possible in deep copy)
- if ( typeof target != "object" )
+ if ( typeof target != "object" && typeof target != "function" )
target = {};
// extend jQuery itself if only one argument is passed
continue;
// Recurse if we're merging object values
- if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
+ if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
target[ name ] = jQuery.extend( target[ name ], options[ name ] );
// Don't bring in undefined values
},
// Evalulates a script in a global context
- // Evaluates Async. in Safari 2 :-(
globalEval: function( data ) {
data = jQuery.trim( data );
// internal only, use addClass("class")
add: function( elem, classNames ) {
jQuery.each((classNames || "").split(/\s+/), function(i, className){
- if ( !jQuery.className.has( elem.className, className ) )
+ if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
elem.className += (elem.className ? " " : "") + className;
});
},
// internal only, use removeClass("class")
remove: function( elem, classNames ) {
- elem.className = classNames != undefined ?
- jQuery.grep(elem.className.split(/\s+/), function(className){
- return !jQuery.className.has( classNames, className );
- }).join(" ") :
- "";
+ if (elem.nodeType == 1)
+ elem.className = classNames != undefined ?
+ jQuery.grep(elem.className.split(/\s+/), function(className){
+ return !jQuery.className.has( classNames, className );
+ }).join(" ") :
+ "";
},
// internal only, use is(".class")
clean: function( elems, context ) {
var ret = [];
context = context || document;
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if (typeof context.createElement == 'undefined')
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
jQuery.each(elems, function(i, elem){
if ( !elem )
},
attr: function( elem, name, value ) {
+ // don't set attributes on text and comment nodes
+ if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
+ return undefined;
+
var fix = jQuery.isXMLDoc( elem ) ?
{} :
jQuery.props;
(parseFloat( value ).toString() == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
}
- return elem.filter ?
+ return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100).toString() :
"";
}
jQuery.each({
removeAttr: function( name ) {
jQuery.attr( this, name, "" );
- this.removeAttribute( name );
+ if (this.nodeType == 1)
+ this.removeAttribute( name );
},
addClass: function( classNames ) {