for ( var prop in key )
jQuery.attr(
type ? this.style : this,
- prop, jQuery.parseSetter(key[prop])
+ prop, jQuery.prop(this, prop, key[prop], type)
);
// See if we're setting a single key/value style
- else {
- // convert ${this.property} to function returnung that property
+ else
jQuery.attr(
type ? this.style : this,
- key, jQuery.parseSetter(value)
+ key, jQuery.prop(this, key, value, type)
);
- }
}) :
// Look for the case where we're accessing a style value
/**
* 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>
* @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; });
},
/**
if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
return obj;
},
+
+ prop: function(elem, key, value){
+ // Handle executable functions
+ return value.constructor == Function &&
+ value.call( elem ) || value;
+ },
className: {
add: function( elem, c ){
return r;
},
- parseSetter: function(value) {
- if( typeof value == "string" && value.charAt(0) == "$" ) {
- var m = value.match(/{(.*)}$/);
- if ( m && m[1] ) {
- value = new Function( "return " + m[1] );
- }
- }
- return value;
- },
-
attr: function(elem, name, value){
var fix = {
"for": "htmlFor",
selected: "selected"
};
- // get value if a function is provided
- if ( value && typeof value == "function" ) {
- value = value.apply( elem );
- }
-
// IE actually uses filters for opacity ... elem is actually elem.style
if ( name == "opacity" && jQuery.browser.msie && value != undefined ) {
// IE has trouble with opacity if it does not have layout