Merge pull request #419 from rwldrn/9630

Unit tests assert that .contents().hasClass() works as expected. Fixes #9630
This commit is contained in:
Dave Methvin 2011-08-04 14:33:52 -07:00
commit 6a3395afcd
2 changed files with 11 additions and 1 deletions

View File

@ -146,7 +146,7 @@ jQuery.fn.extend({
hasClass: function( selector ) { hasClass: function( selector ) {
var className = " " + selector + " "; var className = " " + selector + " ";
for ( var i = 0, l = this.length; i < l; i++ ) { for ( var i = 0, l = this.length; i < l; i++ ) {
if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
return true; return true;
} }
} }

View File

@ -1062,3 +1062,13 @@ test("addClass, removeClass, hasClass", function() {
jq.removeClass("class4"); jq.removeClass("class4");
ok( jq.hasClass("class4")==false, "Check the class has been properly removed" ); ok( jq.hasClass("class4")==false, "Check the class has been properly removed" );
}); });
test("contents().hasClass() returns correct values", function() {
expect(2);
var $div = jQuery("<div><span class='foo'></span><!-- comment -->text</div>"),
$contents = $div.contents();
ok( $contents.hasClass("foo"), "Found 'foo' in $contents" );
ok( !$contents.hasClass("undefined"), "Did not find 'undefined' in $contents (correctly)" );
});