Side navigation
Ticket #1264: patch.txt
File patch.txt, 2.8 KB (added by flamefork, June 02, 2007 03:54PM UTC)
@@ -42,7 +42,7 @@
// HANDLE: $(html) -> $(array)
var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a);
if ( m )
- a = jQuery.clean( [ m[1] ] );
+ a = jQuery.clean( [ m[1] ], c );
// HANDLE: $(expr)
else
@@ -554,8 +554,8 @@
* @cat DOM/Attributes
*/
text: function(e) {
- if ( typeof e == "string" )
- return this.empty().append( document.createTextNode( e ) );
+ if ( typeof e == "string" && this.length )
+ return this.empty().append( this.get(0).ownerDocument.createTextNode( e ) );
var t = "";
jQuery.each( e || this, function(){
@@ -616,7 +616,7 @@
*/
wrap: function() {
// The elements to wrap the target around
- var a = jQuery.clean(arguments);
+ var a = jQuery.clean(arguments, this);
// Wrap each of the matched elements individually
return this.each(function(){
@@ -667,7 +667,7 @@
append: function() {
return this.domManip(arguments, true, 1, function(a){
this.appendChild( a );
- });
+ }, this);
},
/**
@@ -1122,9 +1122,9 @@
* @type jQuery
* @cat Core
*/
- domManip: function(args, table, dir, fn){
+ domManip: function(args, table, dir, fn, context){
var clone = this.length > 1;
- var a = jQuery.clean(args);
+ var a = jQuery.clean(args, context);
if ( dir < 0 )
a.reverse();
@@ -1132,7 +1132,7 @@
var obj = this;
if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
- obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody"));
jQuery.each( a, function(){
fn.apply( obj, [ clone ? this.cloneNode(true) : this ] );
@@ -1442,10 +1442,21 @@
return ret;
},
- clean: function(a) {
+ clean: function(a, context) {
var r = [];
+ var contextDoc = document;
+ if (context) {
+ if (context instanceof jQuery && context.length) {
+ context = context.get(0);
+ }
+ if (context.ownerDocument) {
+ contextDoc = context.ownerDocument;
+ } else if (context.body) {
+ contextDoc = context;
+ }
+ }
- jQuery.each( a, function(i,arg){
+ jQuery.each( a, function(i,arg){
if ( !arg ) return;
if ( arg.constructor == Number )
@@ -1454,7 +1465,7 @@
// Convert html string into DOM nodes
if ( typeof arg == "string" ) {
// Trim whitespace, otherwise indexOf won't work as expected
- var s = jQuery.trim(arg), div = document.createElement("div"), tb = [];
+ var s = jQuery.trim(arg), div = contextDoc.createElement("div"), tb = [];
var wrap =
// option or optgroup
Download in other formats:
Original Format
File patch.txt, 2.8 KB (added by flamefork, June 02, 2007 03:54PM UTC)
@@ -42,7 +42,7 @@
// HANDLE: $(html) -> $(array)
var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a);
if ( m )
- a = jQuery.clean( [ m[1] ] );
+ a = jQuery.clean( [ m[1] ], c );
// HANDLE: $(expr)
else
@@ -554,8 +554,8 @@
* @cat DOM/Attributes
*/
text: function(e) {
- if ( typeof e == "string" )
- return this.empty().append( document.createTextNode( e ) );
+ if ( typeof e == "string" && this.length )
+ return this.empty().append( this.get(0).ownerDocument.createTextNode( e ) );
var t = "";
jQuery.each( e || this, function(){
@@ -616,7 +616,7 @@
*/
wrap: function() {
// The elements to wrap the target around
- var a = jQuery.clean(arguments);
+ var a = jQuery.clean(arguments, this);
// Wrap each of the matched elements individually
return this.each(function(){
@@ -667,7 +667,7 @@
append: function() {
return this.domManip(arguments, true, 1, function(a){
this.appendChild( a );
- });
+ }, this);
},
/**
@@ -1122,9 +1122,9 @@
* @type jQuery
* @cat Core
*/
- domManip: function(args, table, dir, fn){
+ domManip: function(args, table, dir, fn, context){
var clone = this.length > 1;
- var a = jQuery.clean(args);
+ var a = jQuery.clean(args, context);
if ( dir < 0 )
a.reverse();
@@ -1132,7 +1132,7 @@
var obj = this;
if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
- obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody"));
jQuery.each( a, function(){
fn.apply( obj, [ clone ? this.cloneNode(true) : this ] );
@@ -1442,10 +1442,21 @@
return ret;
},
- clean: function(a) {
+ clean: function(a, context) {
var r = [];
+ var contextDoc = document;
+ if (context) {
+ if (context instanceof jQuery && context.length) {
+ context = context.get(0);
+ }
+ if (context.ownerDocument) {
+ contextDoc = context.ownerDocument;
+ } else if (context.body) {
+ contextDoc = context;
+ }
+ }
- jQuery.each( a, function(i,arg){
+ jQuery.each( a, function(i,arg){
if ( !arg ) return;
if ( arg.constructor == Number )
@@ -1454,7 +1465,7 @@
// Convert html string into DOM nodes
if ( typeof arg == "string" ) {
// Trim whitespace, otherwise indexOf won't work as expected
- var s = jQuery.trim(arg), div = document.createElement("div"), tb = [];
+ var s = jQuery.trim(arg), div = contextDoc.createElement("div"), tb = [];
var wrap =
// option or optgroup