Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I use "hasClass" before "addClass"? [duplicate]

I have come across the following script which checks whether an element has class a, and if not, adds it:

if (!$("div").hasClass("a")){
   $("div").addClass("a");
}

As jQuery won't add the class if it already exists, this could be changed to:

$("div").addClass("a");

However, is there any performance improvements by using hasClass first, or is this using the same method which addClass does anyway, and therefore duplicating the logic?

like image 465
Curtis Avatar asked Nov 13 '12 10:11

Curtis


2 Answers

The .hasClass() check is not useful because jQuery will also always check from within .addClass(). It's just extra work.

like image 179
Jon Avatar answered Oct 20 '22 19:10

Jon


You can see at the source code : https://github.com/jquery/jquery/blob/master/src/attributes/classes.js#L38-L45 that they do check if the class exists when using addClass.

So there is no reason to use the .hasClass() in this case.. (an exception would be if you wanted to perform more actions if the element did not have the class..)

like image 13
Gabriele Petrioli Avatar answered Oct 20 '22 19:10

Gabriele Petrioli