如果我确实想从元素中删除某个类,我应该盲目调用removeClass()
还是应该先与hasClass()
检查?
这两种方法在性能上都有任何可提及的优势吗?有最佳实践吗?
示例:
function showMessage(){
$('.message').removeClass('hidden');
}
vs。
function showMessage(){
if($('.message').hasClass('hidden')){
$('.message').removeClass('hidden');
}
}
答案 0 :(得分:7)
如果元素上不存在类,则对removeClass()
的调用不会引发任何错误,因此实际上不需要首先调用hasClass()
。只会造成额外的开销。
在询问性能时,对getClass()
和removeClass()
的调用可能很快。重复查询DOM中的.message
元素会使速度变慢。因此,如果您想先调用hasClass()
,最好不要重复元素查找:
function showMessage() {
const message = $('.message');
if(message.hasClass('hidden')){
message.removeClass('hidden');
}
}