jQuery.fn.extend({
text: function( text ) {
- if ( typeof text !== "object" && text !== undefined )
+ if ( typeof text !== "object" && text !== undefined ) {
return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+ }
var ret = "";
- jQuery.each( text || this, function(){
- jQuery.each( this.childNodes, function(){
- if ( this.nodeType !== 8 ) {
- ret += this.nodeType !== 1 ?
- this.nodeValue :
- jQuery.fn.text( [ this ] );
- }
- });
+ jQuery.each( this, function() {
+ // Get the text from text nodes and CDATA nodes
+ if ( this.nodeType === 3 || this.nodeType === 4 ) {
+ ret += this.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if ( this.nodeType !== 8 ) {
+ ret += jQuery.fn.text.call( this.childNodes );
+ }
});
return ret;
var functionReturningObj = function(value) { return (function() { return value; }); };
test("text()", function() {
- expect(1);
+ expect(2);
var expected = "This link has class=\"blog\": Simon Willison's Weblog";
equals( jQuery('#sap').text(), expected, 'Check for merged text of more then one element.' );
+
+ // Check serialization of text values
+ equals( jQuery(document.createTextNode("foo")).text(), "foo", "Text node was retreived from .text()." );
});
var testWrap = function(val) {