Un quick test mostra che il codice con if
gestisce circa 5 volte più veloce rispetto al uno con il selettore contains
. Tuttavia, come altri hanno già spiegato nei commenti, i due non sono equivalenti.
Si potrebbe accelerare le cose ancora di più mettendo in cache la chiamata a $('.shipping .price')
in questo modo:
var elem = $('.shipping .price');
if (elem.text() === "FREE"){
elem.addClass('text-primary');
}
Tuttavia, per quasi tutte le differenze di prestazioni scenario di vita reale non importerà a tutti e si dovrebbe andare per l'opzione questo è più efficiente da leggere per gli altri umani. Se ti preoccupi veramente delle prestazioni (ad esempio se hai un listino prezzi piuttosto grande) dovresti usare vanilla JS che è circa 10 volte più veloce in questo caso.
Beh, i due non sono equivalenti, per cominciare. Il secondo può abbinare più nodi rispetto al primo. – dfsq
Anche la domanda in sé è ambigua ... il secondo è ovviamente meno linee di codice e più * "efficiente da scrivere" * ma ciò non equivale necessariamente a * "più efficiente da elaborare" * – charlietfl
Supponendo che si tratti di prestazioni, il tuo potrebbe essere una buona lettura: http://stackoverflow.com/questions/111368/how-do-you-performance-test-javascript-code –