Jakie są zalety używania attr()
zamiast używania addClass()
w jquery?Korzyści z używania attr() nad addClass w jquery
Odpowiedz
Gdy używasz metody attr
do ustawienia klasy dowolnego elementu, zastąpi ona istniejącą nazwę klasy dowolną wartością, którą przekazujesz jako drugi argument metody attr
.
Jeśli używasz metody addClass
do dodania dowolnej klasy do elementu, to po prostu dodasz klasę i zachowasz istniejące klasy. Jeśli klasa do dodania już istnieje, po prostu ją zignoruje.
E.g.
<div id="div1" class="oldClass"></div>
Korzystanie $('#div1').attr('class', 'newClass')
da
<div id="div1" class="newClass"></div>
Gdzie, jak przy użyciu $('#div1').addClass('newClass')
dadzą
<div id="div1" class="oldClass newClass"></div>
Tak jest zawsze adviseable używać addClass
/removeClass
do manupulate klas elementów HTML za pomocą jQuery. Ale na końcu zależy to od wymagań, jakich użyć, kiedy.
attr (a, b) ustawia atrybut "a" elementu na "b".
addClass (a) dodaje klasy "A" do elementu
na przykład ...
html
<div id="box" class="myClass"></div>
Script
$("#box").attr("class", "myOtherClass");
Wynik
<div id="box" class="myOtherClass"></div>
I ...
Html
<div id="box" class="myClass"></div>
Script
$("#box").addClass("myOtherClass");
Re DOPROWADZIĆ
<div id="box" class="myClass myOtherClass"></div>
jQuery Linki:
.addClass()
jest znacznie lepsza pod kątem wydajności.
Sprawdz ten przewodnik do wykonywania jQuery: http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/
Jeden z moich ulubionych artykułów.
addClass()
ma kilka zalet w stosunku do manipulowania klasę z attr('class')
:
To semantycznie jaśniejsze.
addClass
iremoveClass
manipulują atrybutem elementuclass
(lub właściwościąclassName
) i to wszystko. Trochę trudniej jest im sprawić, by kodeks był dla ciebie kłamstwem. Jeśli powiesz, że$whatever.addClas("selected")
, otrzymasz błąd runtime, ale jeśli powiesz$whatever.attr('clas', 'selected')
, to po prostu nie wydaje się nic. Nadal "działa" z punktu widzenia JS, bo kto wie? Możesz chcieć, aby ustawić atrybutclas
. Takie rzeczy zdarzają się, gdy próbujesz użyć szwajcarskiego scyzoryka jako otwieracza do puszek.Działa z wieloma klasami. Jeśli używasz
attr
do dodawania i usuwania klas CSS, a będzie ich więcej niż jeden (co jest dość powszechne), musisz wykonać pewne przetwarzanie ciągów, aby nie przeszkadzać innym zastosowanym klasom lub mieć ta sama klasa powtórzona 50 razy.addClass
iremoveClass
zrób to za Ciebie.To najwyraźniej o wiele szybciej.
Nie mogę myśleć o żadnych korzyści z attr('class'...)
ponad addClass
. Ogólnie rzecz biorąc, attr
jest, gdy nie masz innego wbudowanego sposobu manipulowania atrybutem. W tym przypadku robisz, więc powinieneś tego używać.
Jedyna korzyść z attr()
Wiem, że jeśli działa z SVG, addClass()
nie.
Ta odpowiedź ma pewne szczegóły https://stackoverflow.com/a/10257755/2393562
- 1. Jakieś korzyści z używania CHAR nad VARCHAR?
- 2. Korzyści z używania konstruktora?
- 3. Korzyści z MVC nad MVP
- 4. jQuery addClass nie działa
- 5. jQuery .addClass i .fadeIn?
- 6. Korzyści z używania podmodulatorów Bower over Git
- 7. JQuery .addClass() z mniejszą liczbą mixów
- 8. jak włączyć attr() w jQuery
- 9. Czy mogę opóźnić addClass jQuery?
- 10. Addclass nie jest funkcją jQuery
- 11. jQuery attr ustawić dane
- 12. JQuery - $ (this) .attr ('name')
- 13. Korzyści z używania klas abstrakcyjnych w stosunku do zwykłej klasy
- 14. Korzyści z używania Object.hasOwnProperty vs testowania, jeśli właściwość jest niezdefiniowana.
- 15. Mysz nad zdarzeniami nie uruchomionymi podczas używania jQuery ui.sortable
- 16. Korzyści z używania zarządzania transakcjami sprężystymi a używaniem hibernacji
- 17. Korzyści z używania obiektu WaitForSingleObject podczas sprawdzania identyfikatora procesu
- 18. jquery attr ("sprawdzone", "sprawdzone") działa tylko raz
- 19. jQuery data attr nie ustawienie
- 20. Jakieś korzyści z używania Liquibase do migracji baz danych?
- 21. jQuery AddClass, a następnie usunięcie klasy
- 22. removeAttr (x) vs. attr (x, '') w jQuery
- 23. Jak sprawdzić pustą wartość attr() w jquery?
- 24. Jak animować funkcje JQuery addClass/removeClass?
- 25. Czy attr() w jQuery wymusza małe litery?
- 26. Jak uzyskać dostęp do wartości @attr w JSON z jQuery
- 27. suwak jQuery UI - Nie można wywołać metody 'addClass' z undefined
- 28. Korzyści z x87 przez SSE
- 29. Jakieś korzyści z najeżdżania kursorem myszy w JQuery?
- 30. Jquery znaleźć przez dwie wartości attr
uruchomić testy siebie: http://jsperf.com/jquery-addclass-vs-attr-class –
wydajność, podczas gdy * czasami * ważne, nie jest jedynym czynnikiem decydującym o co jest "dobre" lub "złe". Pytanie prawdopodobnie dotyczy korzyści jakiegokolwiek rodzaju, a nie tylko szybkości. – cHao
Dla mnie jest to addClass, który jest szybszy na jsperf.com ... To dobrze, bo zawsze używałam addClass. Bałem się zmienić wszystko: -p – user1040899