从性能的角度来看,是否有一种确定元素是否被赋予类别的首选方法?
$('#foo').hasClass('bar');
Run Code Online (Sandbox Code Playgroud)
要么
$('#foo').is('.bar');
Run Code Online (Sandbox Code Playgroud)
Sar*_*raz 162
我在评论之后做了一次测试,并且四次赞成评论.事实证明,我所说的是正确的答案.结果如下:

http://jsperf.com/hasclass-vs-is-so
该is多用,可以例如做is('.class'),is(':checked')等等,这意味着is有更多的事情要做其中hasClass其被设置或被不仅一类检查是有限的.
因此,hasClass如果任何级别的表现是您的首要任务,那么应该更快.
Dan*_*umb 13
由于is比处理提供的表达式更通用hasClass并且用于filter处理提供的表达式,因此似乎hasClass更快.
我从Firebug控制台运行以下代码:
function usingIs() {
for (var i=0; i<10000;i++) {
$('div#example-0').is('.test');
}
}
function usingHas(){
for (var i=0; i<10000;i++) {
$('div#example-0').hasClass('test');
}
}
usingIs();
usingHas();
Run Code Online (Sandbox Code Playgroud)
我有:
没有太大的区别,但如果您正在进行大量测试,则可能是相关的.
当我说'没有太大差异时编辑,我的观点是你需要做10000个周期才能看到0.8的差异.我很惊讶地看到一个Web应用程序,从切换is到hasClass将会看到所有性能的显着改善.但是,我承认速度提高了35%.