Skip to content

Commit

Permalink
.text( String ) now works as you'd expect it to, plus it's much faste…
Browse files Browse the repository at this point in the history
…r and smaller - which is good.
  • Loading branch information
jeresig committed Jan 8, 2007
1 parent d0e8a24 commit 789f0e1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 21 deletions.
4 changes: 2 additions & 2 deletions src/jquery/coreTest.js
Expand Up @@ -433,7 +433,7 @@ test("removeAttr(String", function() {
ok( $('#mark').removeAttr("class")[0].className == "", "remove class" );
});

test("text(String, Boolean)", function() {
test("text(String)", function() {
expect(1);
ok( $("#foo").text("<div><b>Hello</b> cruel world!</div>")[0].innerHTML == "&lt;div&gt;&lt;b&gt;Hello&lt;/b&gt; cruel world!&lt;/div&gt;", "Check escaped text" );
ok( $("#foo").text("<div><b>Hello</b> cruel world!</div>", true)[0].innerHTML == "Hello cruel world!", "Check stripped text" );
});
28 changes: 9 additions & 19 deletions src/jquery/jquery.js
Expand Up @@ -528,10 +528,8 @@ jQuery.fn = jQuery.prototype = {
/**
* Set the text contents of all matched elements.
*
* Similar to html(), but escapes HTML (replace "<" and ">" with their
* HTML entities.
*
* If stripTags argument is set to true, HTML is stripped.
* Similar to html(), but escapes HTML (replace "<" and ">" with their
* HTML entities).
*
* @example $("p").text("<b>Some</b> new text.");
* @before <p>Test Paragraph.</p>
Expand All @@ -546,23 +544,15 @@ jQuery.fn = jQuery.prototype = {
* @name text
* @type String
* @param String val The text value to set the contents of the element to.
* @param Boolean stripTags (optional) Wheather to strip or only escape tags
* @cat DOM/Attributes
*/
text: function(e, stripTags) {
if ( typeof e == "string" )
return this.html( stripTags ? e.replace(/<\/?[^>]+>/gi, '') : e.replace(/</g, "&lt;").replace(/>/g, "&gt;") );

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;
text: function(e) {
var type = this.length && this[0].innerText == undefined ?
"textContent" : "innerText";

return e == undefined ?
this.length && this[0][ type ] :
this.each(function(){ this[ type ] = e; });
},

/**
Expand Down

0 comments on commit 789f0e1

Please sign in to comment.