aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/attributes.js2
-rw-r--r--test/.jshintrc1
-rw-r--r--test/data/testinit.js15
-rw-r--r--test/unit/attributes.js11
4 files changed, 28 insertions, 1 deletions
diff --git a/src/attributes.js b/src/attributes.js
index 5a6749982..68e763e09 100644
--- a/src/attributes.js
+++ b/src/attributes.js
@@ -523,7 +523,7 @@ if ( !getSetAttribute ) {
// Set the existing or create a new attribute node
var ret = elem.getAttributeNode( name );
if ( !ret ) {
- ret = document.createAttribute( name );
+ ret = elem.ownerDocument.createAttribute( name );
elem.setAttributeNode( ret );
}
return ( ret.value = value + "" );
diff --git a/test/.jshintrc b/test/.jshintrc
index 11e1c0361..ec1b4fa1e 100644
--- a/test/.jshintrc
+++ b/test/.jshintrc
@@ -41,6 +41,7 @@
"testIframe": true,
"testIframeWithCallback": true,
"createDashboardXML": true,
+ "createXMLFragment": true,
"moduleTeardown": true,
"testFoo": true,
"foobar": true,
diff --git a/test/data/testinit.js b/test/data/testinit.js
index 99b0f11e1..6f9fd46e6 100644
--- a/test/data/testinit.js
+++ b/test/data/testinit.js
@@ -102,6 +102,21 @@ var createWithFriesXML = function() {
return jQuery.parseXML(string);
};
+var createXMLFragment = function() {
+ var xml, frag;
+ if ( window.ActiveXObject ) {
+ xml = new ActiveXObject("msxml2.domdocument");
+ } else {
+ xml = document.implementation.createDocument( "", "", null );
+ }
+
+ if ( xml ) {
+ frag = xml.createElement("data");
+ }
+
+ return frag;
+};
+
var fireNative;
if ( document.createEvent ) {
fireNative = function( node, type ) {
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index 7795b88b5..9ead9a9b9 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -522,6 +522,17 @@ test( "attr(String, Object) - Loaded via XML document", function() {
equal( titles[ 1 ], "Users", "attr() in XML context: Check second title" );
});
+test( "attr(String, Object) - Loaded via XML fragment", function() {
+ expect( 2 );
+ var frag = createXMLFragment(),
+ $frag = jQuery( frag );
+
+ $frag.attr( "test", "some value" );
+ equal( $frag.attr("test"), "some value", "set attribute" );
+ $frag.attr( "test", null );
+ equal( $frag.attr("test"), undefined, "remove attribute" );
+});
+
test( "attr('tabindex')", function() {
expect( 8 );