X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fdata.js;h=21b7543caa9fceab8b449befb52524de11e899ed;hb=a2bf7ab3c002e921aa1d4c9be9d0f337dfd4143d;hp=f7f65efeb7d93e6330cbac26da77b79a0542defc;hpb=fb48ae8e6cca25fd29ef2b1eb23e9efa7b0eef7c;p=jquery.git diff --git a/src/data.js b/src/data.js index f7f65ef..21b7543 100644 --- a/src/data.js +++ b/src/data.js @@ -9,7 +9,7 @@ jQuery.extend({ // Please use with caution uuid: 0, - // Unique for each copy of jQuery on the page + // Unique for each copy of jQuery on the page expando: "jQuery" + jQuery.now(), // The following elements throw uncatchable exceptions if you @@ -21,6 +21,14 @@ jQuery.extend({ "applet": true }, + hasData: function( elem ) { + if ( elem.nodeType ) { + elem = jQuery.cache[ elem[jQuery.expando] ]; + } + + return !!elem && !jQuery.isEmptyObject(elem); + }, + data: function( elem, name, data ) { if ( !jQuery.acceptData( elem ) ) { return; @@ -138,15 +146,17 @@ jQuery.fn.extend({ if ( typeof key === "undefined" ) { if ( this.length ) { - var attr = this[0].attributes, name; data = jQuery.data( this[0] ); - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = name.substr( 5 ); - dataAttr( this[0], name, data[ name ] ); + if ( name.indexOf( "data-" ) === 0 ) { + name = name.substr( 5 ); + dataAttr( this[0], name, data[ name ] ); + } } } }