jquery core: closes #3159. remove() would unbind form.elements instead of a form.
[jquery.git] / src / core.js
index 478de97..fd19d75 100644 (file)
@@ -21,7 +21,7 @@ var jQuery = window.jQuery = window.$ = function( selector, context ) {
 
 // A simple way to check for HTML strings or ID strings
 // (both of which we optimize for)
-var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
 
 // Is it a simple selector
        isSimple = /^.[^:#\[\.]*$/,
@@ -266,7 +266,7 @@ jQuery.fn = jQuery.prototype = {
                        return jQuery.find( selector, elem );
                });
 
-               return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
+               return this.pushStack( /[^+>] [^+>]/.test( selector ) ?
                        jQuery.unique( elems ) :
                        elems );
        },
@@ -441,7 +441,7 @@ jQuery.fn = jQuery.prototype = {
        },
 
        eq: function( i ) {
-               return this.slice( i, i + 1 );
+               return this.slice( i, +i + 1 );
        },
 
        slice: function() {
@@ -943,12 +943,12 @@ jQuery.extend({
                        context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
 
                jQuery.each(elems, function(i, elem){
+                       if ( typeof elem == 'number' )
+                               elem += '';
+
                        if ( !elem )
                                return;
 
-                       if ( elem.constructor == Number )
-                               elem += '';
-
                        // Convert html string into DOM nodes
                        if ( typeof elem == "string" ) {
                                // Fix "XHTML"-style tags in all browsers
@@ -1244,7 +1244,8 @@ jQuery.extend({
                styleFloat: styleFloat,
                readonly: "readOnly",
                maxlength: "maxLength",
-               cellspacing: "cellSpacing"
+               cellspacing: "cellSpacing",
+               rowspan: "rowSpan"
        }
 });
 
@@ -1308,7 +1309,7 @@ jQuery.each({
        remove: function( selector ) {
                if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
                        // Prevent memory leaks
-                       jQuery( "*", this ).add(this).each(function(){
+                       jQuery( "*", this ).add([this]).each(function(){
                                jQuery.event.remove(this);
                                jQuery.removeData(this);
                        });
@@ -1367,4 +1368,4 @@ jQuery.each([ "Height", "Width" ], function(i, name){
 // Helper function used by the dimensions and offset modules
 function num(elem, prop) {
        return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}
\ No newline at end of file
+}