aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2007-01-14 21:09:43 +0000
committerJohn Resig <jeresig@gmail.com>2007-01-14 21:09:43 +0000
commit866187fff66ef50b9c4b4c47f332f742c7546cc5 (patch)
tree6ffe31561cf10cbc52bfaa5814a8f12a84c7caaf
parent259131966049cd879dbcecf222afe1457b03db60 (diff)
downloadjquery-866187fff66ef50b9c4b4c47f332f742c7546cc5.tar.gz
jquery-866187fff66ef50b9c4b4c47f332f742c7546cc5.zip
Fixed the issues with .text() working incorrectly.
-rw-r--r--src/jquery/jquery.js20
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;
+ }
},
/**