git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added in jQuery.nodeName() to simplify checking nodeName constantly.
[jquery.git]
/
src
/
jquery
/
jquery.js
diff --git
a/src/jquery/jquery.js
b/src/jquery/jquery.js
index
9dcccb9
..
38dee9c
100644
(file)
--- a/
src/jquery/jquery.js
+++ b/
src/jquery/jquery.js
@@
-32,20
+32,19
@@
var jQuery = function(a,c) {
// HANDLE: $(function)
// Shortcut for document ready
// HANDLE: $(function)
// Shortcut for document ready
- // Safari reports typeof on DOM NodeLists as a function
- if ( jQuery.isFunction(a) && !a.nodeType && a[0] == undefined )
+ if ( jQuery.isFunction(a) )
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
// Handle HTML strings
if ( typeof a == "string" ) {
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
// Handle HTML strings
if ( typeof a == "string" ) {
- var m = /^[^<]*(<.+>)[^>]*$/.exec(a);
-
- a = m ?
- // HANDLE: $(html) -> $(array)
- jQuery.clean( [ m[1] ] ) :
+ // HANDLE: $(html) -> $(array)
+ var m = /^[^<]*(<(.|\n)+>)[^>]*$/.exec(a);
+ if ( m )
+ a = jQuery.clean( [ m[1] ] );
- // HANDLE: $(expr)
- jQuery.find( a, c );
+ // HANDLE: $(expr)
+ else
+ return new jQuery( c ).find( a );
}
return this.setArray(
}
return this.setArray(
@@
-429,7
+428,7
@@
jQuery.fn = jQuery.prototype = {
// Look for the case where we're accessing a style value
if ( key.constructor == String )
if ( value == undefined )
// Look for the case where we're accessing a style value
if ( key.constructor == String )
if ( value == undefined )
- return jQuery[ type || "attr" ]( this[0], key );
+ return this.length && jQuery[ type || "attr" ]( this[0], key ) || undefined;
else {
obj = {};
obj[ key ] = value;
else {
obj = {};
obj[ key ] = value;
@@
-985,7
+984,10
@@
jQuery.fn = jQuery.prototype = {
add: function(t) {
return this.pushStack( jQuery.merge(
this.get(),
add: function(t) {
return this.pushStack( jQuery.merge(
this.get(),
- typeof t == "string" ? jQuery(t).get() : t )
+ t.constructor == String ?
+ jQuery(t).get() :
+ t.length != undefined && !t.nodeName ?
+ t : [t] )
);
},
);
},
@@
-1098,7
+1100,7
@@
jQuery.fn = jQuery.prototype = {
return this.each(function(){
var obj = this;
return this.each(function(){
var obj = this;
- if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() == "TR" )
+ if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
jQuery.each( a, function(){
obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
jQuery.each( a, function(){
@@
-1217,10
+1219,18
@@
jQuery.extend({
noConflict: function() {
if ( jQuery._$ )
$ = jQuery._$;
noConflict: function() {
if ( jQuery._$ )
$ = jQuery._$;
+ return jQuery;
},
},
+ // This may seem like some crazy code, but trust me when I say that this
+ // is the only cross-browser way to do this. --John
isFunction: function( fn ) {
isFunction: function( fn ) {
- return fn && typeof fn == "function";
+ return !!fn && typeof fn != "string" &&
+ typeof fn[0] == "undefined" && /function/i.test( fn + "" );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
},
/**
},
/**
@@
-1268,7
+1278,7
@@
jQuery.extend({
return value.call( elem, [index] );
// exclude the following css properties to add px
return value.call( elem, [index] );
// exclude the following css properties to add px
- var exclude = /z-?index|font-?weight|opacity/i;
+ var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i;
// Handle passing in a number to a CSS property
if ( value.constructor == Number && type == "curCSS" && !exclude.test(prop) )
// Handle passing in a number to a CSS property
if ( value.constructor == Number && type == "curCSS" && !exclude.test(prop) )
@@
-1445,7
+1455,7
@@
jQuery.extend({
tb = div.childNodes;
for ( var n = tb.length-1; n >= 0 ; --n )
tb = div.childNodes;
for ( var n = tb.length-1; n >= 0 ; --n )
- if ( tb[n].nodeName.toUpperCase() == "TBODY" && !tb[n].childNodes.length )
+ if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length )
tb[n].parentNode.removeChild(tb[n]);
}
tb[n].parentNode.removeChild(tb[n]);
}
@@
-1504,7
+1514,7
@@
jQuery.extend({
if ( value != undefined ) elem[fix[name]] = value;
return elem[fix[name]];
if ( value != undefined ) elem[fix[name]] = value;
return elem[fix[name]];
- } else if ( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == "FORM" && (name == "action" || name == "method") )
+ } else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName(elem, "form") && (name == "action" || name == "method") )
return elem.getAttributeNode(name).nodeValue;
// IE elem.getAttribute passes even for style
return elem.getAttributeNode(name).nodeValue;
// IE elem.getAttribute passes even for style