X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=inline;f=src%2Fjquery%2Fjquery.js;h=9d80d050cf6ebd0821fc6cedb236608bcfb3cc3c;hb=2a4c269a9b7c15477e032a24f92d08dfaeb026e4;hp=bdb46a82b996ca7dbc2ec250a733a82f60736a20;hpb=7448c61ee2199f6f7002e33e533cebc42b000c89;p=jquery.git
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index bdb46a8..9d80d05 100644
--- a/src/jquery/jquery.js
+++ b/src/jquery/jquery.js
@@ -36,7 +36,7 @@ function jQuery(a,c) {
if ( a && a.constructor == Function && jQuery.fn.ready )
return jQuery(document).ready(a);
- // Make sure t hat a selection was provided
+ // Make sure that a selection was provided
a = a || jQuery.context || document;
/*
@@ -59,12 +59,10 @@ function jQuery(a,c) {
*/
// Watch for when a jQuery object is passed as the selector
- if ( a.jquery )
- return a;
+ if ( a.jquery ) return a;
// Watch for when a jQuery object is passed at the context
- if ( c && c.jquery )
- return jQuery(c.get()).find(a);
+ if ( c && c.jquery ) return c.find(a);
// If the context is global, return a new object
if ( window == this )
@@ -559,6 +557,12 @@ jQuery.fn = jQuery.prototype = {
return jQuery.find(t,a);
}), arguments );
},
+
+ clone: function(deep) {
+ return this.pushStack( jQuery.map( this, function(a){
+ return a.cloneNode( deep != undefined ? deep : true );
+ }), arguments );
+ },
/**
* Removes all elements from the set of matched elements that do not
@@ -726,7 +730,7 @@ jQuery.fn = jQuery.prototype = {
return this.each(function(){
var obj = this;
- if ( table && this.nodeName == "TABLE" ) {
+ if ( table && this.nodeName == "TABLE" && a[0].nodeName != "THEAD" ) {
var tbody = this.getElementsByTagName("tbody");
if ( !tbody.length ) {
@@ -958,30 +962,36 @@ jQuery.extend({
var r = [];
for ( var i = 0; i < a.length; i++ ) {
if ( a[i].constructor == String ) {
+
+ var table = "";
- if ( !a[i].indexOf("
" + a[i] + "";
+ } else if ( !a[i].indexOf("
" + a[i] + "";
} else if ( !a[i].indexOf(" |
" + a[i] + "
";
}
var div = document.createElement("div");
div.innerHTML = a[i];
- if ( tr || td ) {
- div = div.firstChild.firstChild;
- if ( td ) div = div.firstChild;
+ if ( table ) {
+ div = div.firstChild;
+ if ( table != "thead" ) div = div.firstChild;
+ if ( table == "td" ) div = div.firstChild;
}
for ( var j = 0; j < div.childNodes.length; j++ )
r.push( div.childNodes[j] );
- } else if ( a[i].jquery || a[i].length && !a[i].nodeType )
- for ( var k = 0; k < a[i].length; k++ )
- r.push( a[i][k] );
- else if ( a[i] !== null )
- r.push( a[i].nodeType ? a[i] : document.createTextNode(a[i].toString()) );
+ } else if ( a[i].jquery || a[i].length && !a[i].nodeType )
+ for ( var k = 0; k < a[i].length; k++ )
+ r.push( a[i][k] );
+ else if ( a[i] !== null )
+ r.push( a[i].nodeType ? a[i] : document.createTextNode(a[i].toString()) );
}
return r;
},
@@ -1089,6 +1099,9 @@ jQuery.extend({
* @test t( "Attribute Equals", "a[@rel='bookmark']", ["simon1"] );
* @test t( "Attribute Equals", 'a[@rel="bookmark"]', ["simon1"] );
* @test t( "Attribute Equals", "a[@rel=bookmark]", ["simon1"] );
+ * @test t( "Multiple Attribute Equals", "input[@type='hidden'],input[@type='radio']", ["hidden1","radio1","radio2"] );
+ * @test t( "Multiple Attribute Equals", "input[@type=\"hidden\"],input[@type='radio']", ["hidden1","radio1","radio2"] );
+ * @test t( "Multiple Attribute Equals", "input[@type=hidden],input[@type=radio]", ["hidden1","radio1","radio2"] );
*
* @test t( "Attribute Begins With", "a[@href ^= 'http://www']", ["google","yahoo"] );
* @test t( "Attribute Ends With", "a[@href $= 'org/']", ["mark"] );
@@ -1286,7 +1299,7 @@ jQuery.extend({
.replace( 'S', "([a-z*_-][a-z0-9_-]*)" )
// Look for something (optionally) enclosed with quotes
- .replace( 'Q', " *'?\"?([^'\"]*)'?\"? *" ), "i" );
+ .replace( 'Q', " *'?\"?([^'\"]*?)'?\"? *" ), "i" );
var m = re.exec( t );