aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/manipulation.js7
-rw-r--r--test/unit/manipulation.js8
2 files changed, 12 insertions, 3 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index 062527708..5fec948cb 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -286,16 +286,17 @@ jQuery.fn.extend({
var fragment, first, scripts, hasScripts, node, doc,
i = 0,
l = this.length,
+ set = this,
iNoClone = l - 1,
value = args[0],
isFunction = jQuery.isFunction( value );
// We can't cloneNode fragments that contain checked, in WebKit
if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
- return this.each(function() {
- var self = jQuery( this );
+ return this.each(function( index ) {
+ var self = set.eq( index );
if ( isFunction ) {
- args[0] = value.call( this, i, table ? self.html() : undefined );
+ args[0] = value.call( this, index, table ? self.html() : undefined );
}
self.domManip( args, table, callback );
});
diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js
index 35beb5267..86b26e040 100644
--- a/test/unit/manipulation.js
+++ b/test/unit/manipulation.js
@@ -2238,3 +2238,11 @@ test( "insertAfter, insertBefore, etc do not work when destination is original e
jQuery("#test4087-multiple").remove();
});
});
+
+test( "Index for function argument should be received (#13094)", 2, function() {
+ var i = 0;
+
+ jQuery("<div/><div/>").before(function( index ) {
+ equal( index, i++, "Index should be correct" );
+ });
+});