Update jQuery.hasData to always return a boolean, with unit tests.
This commit is contained in:
parent
445fdf720c
commit
f5d4bf8920
|
@ -22,7 +22,7 @@ jQuery.extend({
|
|||
},
|
||||
|
||||
hasData: function( elem ) {
|
||||
return !elem.nodeType || (elem[ jQuery.expando ] && !jQuery.isEmptyObject(jQuery.cache[ elem[jQuery.expando] ]));
|
||||
return !elem.nodeType || (!!elem[ jQuery.expando ] && !jQuery.isEmptyObject(jQuery.cache[ elem[jQuery.expando] ]));
|
||||
},
|
||||
|
||||
data: function( elem, name, data ) {
|
||||
|
|
|
@ -78,6 +78,15 @@ test("jQuery.data", function() {
|
|||
ok( jQuery.data( window, "BAD" ), "Make sure that the value was set." );
|
||||
});
|
||||
|
||||
test("jQuery.hasData", function() {
|
||||
var div = document.createElement( "div" );
|
||||
equals( jQuery.hasData(div), false, "No data exists" );
|
||||
jQuery.data( div, "foo", "bar" );
|
||||
equals( jQuery.hasData(div), true, "Data exists" );
|
||||
jQuery.removeData( div, "foo" );
|
||||
equals( jQuery.hasData(div), false, "Data was removed" );
|
||||
});
|
||||
|
||||
test(".data()", function() {
|
||||
expect(5);
|
||||
|
||||
|
|
Loading…
Reference in a new issue