2012-11-13 1 views
82

Ich habe über das folgende Skript kommen, die, ob ein Element a hat Klasse überprüft, und wenn nicht, fügt sie:Sollte ich "hasClass" vor "addClass" verwenden?

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

Wie jQuery wird nicht die Klasse hinzufügen, wenn es bereits vorhanden ist, dies zu geändert werden :

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

Allerdings ist es Leistungsverbesserungen durch hasClass zuerst, oder wird dies mit der gleichen Methode, die addClass ohnehin der Fall ist, und damit die Logik duplizieren?

Antwort

133

Die .hasClass() Überprüfung ist nicht nützlich, weil jQuery will also always check von innerhalb .addClass(). Es ist nur zusätzliche Arbeit.

11

Sie können am Quellcode sehen: https://github.com/jquery/jquery/blob/master/src/attributes/classes.js#L38-L45, dass sie überprüfen, ob die Klasse existiert, wenn addClass verwendet wird.

So gibt es keinen Grund, die .hasClass() in diesem Fall zu verwenden .. (eine Ausnahme wäre, wenn Sie weitere Aktionen durchführen wollen, wenn das Element nicht die Klasse hat ..)

+3

Hallo aus Thessaloniki und +1 - Ich wusste nicht über die '# LX-Y' Trick :) – Jon

+3

Hey Jon :) Es ist auch Maus auswählbar .. (* Klicken Sie auf Zeilennummer und Shift + Klick auf einem anderen, um alle Linien auszuwählen .. *) –