JQuery is()与hasClass()方法的对比

is()和hasClass()方法都可以用以检查匹配的所有元素里是否含有指定类名,虽说hasClass(className)函数等价于is(“.className”) 但is()方法比hasClass()更好用更强大,参数中不但可以放入字符串,还可以放入函数。
hasClass()的语法:

$(selector).hasClass("className");

多个类名同时检查(元素必须同时存在多个类名):
$(selector).hasClass(“className className”);

example:

<li id="w1" class="page"> item1 li>
<li id="w2" class="page-arrow"> item2 li>
<li id="w3" class="active"> item3 li>
$("li").hasClass("page");              //true
$("li").hasClass("page active");       //ture
$("li").hasClass("page-arrow active");  //false

用此方法的返回值作为判断条件时应写作

if( $("li").hasClass("page") ) 或 if(!$("li").hasClass("page"))

is()的语法:
jQueryObject.is( expr )
函数实际上是判断当前jQuery对象所匹配的元素与指定表达式expr所表示的元素是否存在交集,如果存在交集就返回true,否则返回false。如果expr参数为字符串,则将其视作jQuery选择器,用以表示该选择器所匹配的元素。

$(selector).is(".className");
$(selector).is(".className,.className");

使用is()方法检测上面的li元素里类名的话只要参数里包含其中一个类名都可返回true

$("li").is(".page");               //true
$("li").is(".page,.active");       //ture
$("li").is(".page-arrow,.active"); //true
$("#w1").is("li");         //true
$("#w1").is("ul li");      //true
$("#w2").is("div li");     //false

详见:http://www.365mini.com/page/jquery-is.htm

你可能感兴趣的:(JQuery is()与hasClass()方法的对比)