diff options
author | John Resig <jeresig@gmail.com> | 2007-01-08 01:26:48 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2007-01-08 01:26:48 +0000 |
commit | 789f0e1093beb559bb2acef708cc4b27c00f557d (patch) | |
tree | 6126ca202f45e8039d9cd894d29e2323d6a1ea39 | |
parent | d0e8a2452ebd30abe403d402e813513cef675694 (diff) | |
download | jquery-789f0e1093beb559bb2acef708cc4b27c00f557d.tar.gz jquery-789f0e1093beb559bb2acef708cc4b27c00f557d.zip |
.text( String ) now works as you'd expect it to, plus it's much faster and smaller - which is good.
-rw-r--r-- | src/jquery/coreTest.js | 4 | ||||
-rw-r--r-- | src/jquery/jquery.js | 28 |
2 files changed, 11 insertions, 21 deletions
diff --git a/src/jquery/coreTest.js b/src/jquery/coreTest.js index 73621cd17..a18973903 100644 --- a/src/jquery/coreTest.js +++ b/src/jquery/coreTest.js @@ -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 == "<div><b>Hello</b> cruel world!</div>", "Check escaped text" );
- ok( $("#foo").text("<div><b>Hello</b> cruel world!</div>", true)[0].innerHTML == "Hello cruel world!", "Check stripped text" );
});
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 4f1306aeb..f6e2adec4 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -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> @@ -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, "<").replace(/>/g, ">") ); - - 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; }); }, /** |