quick test pokazuje, że kod z if
biegnie około 5 razy szybciej niż jeden z selektorem contains
. Jednak, jak wyjaśnili już inni w komentarzach, nie są one równoważne.
Można przyspieszyć jeszcze bardziej poprzez buforowanie wezwanie do $('.shipping .price')
tak:
var elem = $('.shipping .price');
if (elem.text() === "FREE"){
elem.addClass('text-primary');
}
Jednak przez prawie każdy różnice wydajności scenariusz rzeczywistych nie ma znaczenia w ogóle i należy przejść do opcji to jest bardziej skuteczne w czytaniu dla innych ludzi. Jeśli naprawdę zależy Ci na wydajności (na przykład, jeśli masz dość duży cennik), powinieneś użyć waniliowego JS, który w tym przypadku jest około 10 razy szybszy.
Cóż, te dwa elementy nie są równoważne, na początek. Drugi może dopasować więcej węzłów niż pierwszy. – dfsq
Nawet samo pytanie jest niejednoznaczne ... drugie jest oczywiście mniej linii kodu i więcej * "wydajne do napisania" * ale to niekoniecznie oznacza "bardziej efektywny proces" * – charlietfl
Zakładając, że chodzi o wydajność, sytuacja może dzielić włosy, ale może to być dobra lektura: http://stackoverflow.com/questions/111368/how-do-you-performance-test-javascript-code –