JQuery if()vs:contains

Aqu*_*zie 5 performance jquery

写这个更有效的方法是什么:

if ($('.shipping .price').text() === "FREE"){ 
    $('.shipping .price').addClass('text-primary'); 
}
Run Code Online (Sandbox Code Playgroud)

要么

$('.shipping .price:contains("FREE")').addClass('text-primary');
Run Code Online (Sandbox Code Playgroud)

amo*_*ebe 3

快速测试表明代码if运行速度大约是使用 - 选择器的代码的 5 倍contains。然而,正如其他人在评论中已经解释的那样,两者并不等同。

您可以通过缓存调用来加快速度,$('.shipping .price')如下所示:

var elem = $('.shipping .price');
if (elem.text() === "FREE"){ 
  elem.addClass('text-primary'); 
}
Run Code Online (Sandbox Code Playgroud)

然而,对于几乎所有现实生活场景,性能差异根本不重要,您应该选择对其他人来说阅读效率更高的选项。如果你真的关心性能(例如,如果你有一个相当大的价格表),你应该使用 vanilla JS,在这种情况下它的速度大约快 10 倍。