]> source.dussan.org Git - jquery.git/commitdiff
Core: Fix regression in jQuery.text() on HTMLDocument objects
authorTimo Tijhof <krinkle@fastmail.com>
Mon, 12 Jun 2023 21:12:15 +0000 (22:12 +0100)
committerGitHub <noreply@github.com>
Mon, 12 Jun 2023 21:12:15 +0000 (23:12 +0200)
Fixes gh-5264
Closes gh-5265

src/core.js
test/unit/manipulation.js

index 8fde2dc4532a5dc4e1dfcea039a41b941d95a369..268b0431f0e46239d92b8c57aa7ef601bb43bfd3 100644 (file)
@@ -289,9 +289,14 @@ jQuery.extend( {
                                // Do not traverse comment nodes
                                ret += jQuery.text( node );
                        }
-               } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+               }
+               if ( nodeType === 1 || nodeType === 11 ) {
                        return elem.textContent;
-               } else if ( nodeType === 3 || nodeType === 4 ) {
+               }
+               if ( nodeType === 9 ) {
+                       return elem.documentElement.textContent;
+               }
+               if ( nodeType === 3 || nodeType === 4 ) {
                        return elem.nodeValue;
                }
 
index f330a43e76d30baecbba8ee08c017838823286a2..8f7e8f663bc34a098a8eb7bab188f20506fae57b 100644 (file)
@@ -30,9 +30,9 @@ function manipulationFunctionReturningObj( value ) {
 
 QUnit.test( "text()", function( assert ) {
 
-       assert.expect( 5 );
+       assert.expect( 6 );
 
-       var expected, frag, $newLineTest;
+       var expected, frag, $newLineTest, doc;
 
        expected = "This link has class=\"blog\": Simon Willison's Weblog";
        assert.equal( jQuery( "#sap" ).text(), expected, "Check for merged text of more then one element." );
@@ -52,6 +52,9 @@ QUnit.test( "text()", function( assert ) {
        assert.equal( $newLineTest.text(), "test\ntesty", "text() does not remove new lines (trac-11153)" );
 
        $newLineTest.remove();
+
+       doc = new DOMParser().parseFromString( "<span>example</span>", "text/html" );
+       assert.equal( jQuery( doc ).text(), "example", "text() on HTMLDocument (gh-5264)" );
 } );
 
 QUnit.test( "text(undefined)", function( assert ) {