diff options
author | John Resig <jeresig@gmail.com> | 2007-01-14 21:09:43 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-01-14 21:09:43 +0000 |
commit | 866187fff66ef50b9c4b4c47f332f742c7546cc5 (patch) | |
tree | 6ffe31561cf10cbc52bfaa5814a8f12a84c7caaf | |
parent | 259131966049cd879dbcecf222afe1457b03db60 (diff) | |
download | jquery-866187fff66ef50b9c4b4c47f332f742c7546cc5.tar.gz jquery-866187fff66ef50b9c4b4c47f332f742c7546cc5.zip |
Fixed the issues with .text() working incorrectly.
-rw-r--r-- | src/jquery/jquery.js | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 011ea3627..f1cc33931 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -544,12 +544,20 @@ jQuery.fn = jQuery.prototype = { * @cat DOM/Attributes */ text: function(e) { - var type = this.length && this[0].innerText == undefined ? - "textContent" : "innerText"; - - return e == undefined ? - jQuery.map(this, function(a){ return a[ type ]; }).join("") : - this.each(function(){ this[ type ] = e; }); + if ( typeof e == "string" ) + return this.empty().append( document.createTextNode( e ) ); + else { + e = e || this; + var t = ""; + for ( var j = 0, el = e.length; j < el; j++ ) { + var r = e[j].childNodes; + for ( var i = 0, rl = r.length; i < rl; i++ ) + if ( r[i].nodeType != 8 ) + t += r[i].nodeType != 1 ? + r[i].nodeValue : jQuery.fn.text([ r[i] ]); + } + return t; + } }, /** |