有什么更有效的方式编写此代码:
if ($('.shipping .price').text() === "FREE"){
$('.shipping .price').addClass('text-primary');
}
或者
$('.shipping .price:contains("FREE")').addClass('text-primary');
最佳答案
quick test显示带有if
的代码的运行速度比带有contains
-selector的代码快约5倍。但是,正如其他人已经在评论中解释的那样,两者并不等效。
您可以通过如下方式缓存对$('.shipping .price')
的调用来进一步提高速度:
var elem = $('.shipping .price');
if (elem.text() === "FREE"){
elem.addClass('text-primary');
}
但是,对于几乎每种现实情况,性能差异都没有关系,您应该选择对其他人更有效地阅读的选项。如果您真的很在意性能(例如,如果您的价格表相当大),那么在这种情况下,应该使用Vanilla JS wich快大约10倍。
关于jQuery if()与:contains,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37232106/