if ( m && (m[1] || !c) ) {
// HANDLE: $(html) -> $(array)
if ( m[1] )
- a = jQuery.clean( [ m[1] ] );
+ a = jQuery.clean( [ m[1] ], c );
// HANDLE: $("#id")
else {
* @param Element elem A DOM element that will be wrapped around the target.
* @cat DOM/Manipulation
*/
- wrap: function() {
- // The elements to wrap the target around
- var a, args = arguments;
+ wrapAll: function(html) {
+ if ( this[0] )
+ // The elements to wrap the target around
+ jQuery(html, this[0].ownerDocument)
+ .clone()
+ .insertBefore(this[0])
+ .map(function(){
+ var elem = this;
+ while ( elem.firstChild )
+ elem = elem.firstChild;
+ return elem;
+ })
+ .append(this);
- // Wrap each of the matched elements individually
- return this.each(function(){
- if ( !a )
- a = jQuery.clean(args, this.ownerDocument);
-
- // Clone the structure that we're using to wrap
- var b = a[0].cloneNode(true);
-
- // Insert it before the element to be wrapped
- this.parentNode.insertBefore( b, this );
+ return this;
+ },
- // Find the deepest point in the wrap structure
- while ( b.firstChild )
- b = b.firstChild;
+ wrapInner: function(html) {
+ return this.each(function(){
+ jQuery(this).contents().wrapAll(html);
+ });
+ },
- // Move the matched element to within the wrap structure
- b.appendChild( this );
+ wrap: function(html) {
+ return this.each(function(){
+ jQuery(this).wrapAll(html);
});
},
this.empty().append( val );
},
+ replaceWith: function( val ) {
+ return this.after( val ).remove();
+ },
+
slice: function() {
return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
},
+
+ map: function(fn){
+ return this.pushStack(jQuery.map( this, function(elem,i){
+ return fn.call( elem, i, elem );
+ }));
+ },
/**
* @private
fn.call( obj[i], i, obj[i] );
else
for ( var i = 0, ol = obj.length, val = obj[0];
- i < ol && fn.call(val,i,val) !== false; val = obj[++i] );
+ i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
}
return obj;
next: "jQuery.nth(a,2,'nextSibling')",
prev: "jQuery.nth(a,2,'previousSibling')",
siblings: "jQuery.sibling(a.parentNode.firstChild,a)",
- children: "jQuery.sibling(a.firstChild)"
+ children: "jQuery.sibling(a.firstChild)",
+ contents: "jQuery.nodeName(a,'iframe')?a.contentDocument||a.contentWindow.document:jQuery.makeArray(a.childNodes)"
}, function(i,n){
jQuery.fn[ i ] = function(a) {
var ret = jQuery.map(this,n);
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
- insertAfter: "after"
+ insertAfter: "after",
+ replaceAll: "replaceWith"
}, function(i,n){
jQuery.fn[ i ] = function(){
var a = arguments;
* @param String str The string that will be contained within the text of an element.
* @cat DOM/Traversing
*/
+// DEPRECATED
jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){
jQuery.fn[ n ] = function(num,fn) {
return this.filter( ":" + n + "(" + num + ")", fn );