JQuery if()vs:contains
写这篇文章更有效的方法是什么:JQuery if()vs:contains,jquery,performance,Jquery,Performance,写这篇文章更有效的方法是什么: if ($('.shipping .price').text() === "FREE"){ $('.shipping .price').addClass('text-primary'); } 或 A显示带有if的代码运行速度大约是带有包含选择器的代码运行速度的5倍。然而,正如其他人在评论中已经解释的那样,这两者并不等同 通过如下方式缓存对$('.shipping.price')的调用,可以加快速度: var elem = $('.shipping .
if ($('.shipping .price').text() === "FREE"){
$('.shipping .price').addClass('text-primary');
}
或
A显示带有if
的代码运行速度大约是带有包含选择器的代码运行速度的5倍。然而,正如其他人在评论中已经解释的那样,这两者并不等同
通过如下方式缓存对$('.shipping.price')
的调用,可以加快速度:
var elem = $('.shipping .price');
if (elem.text() === "FREE"){
elem.addClass('text-primary');
}
然而,对于几乎每一个真实场景,性能差异根本不重要,您应该选择对其他人更有效的选项。如果你真的关心性能(例如,如果你有一个相当大的价目表),那么你应该使用vanilla JS wich,在这种情况下,速度要快10倍左右。首先,这两个功能并不等同。第二个问题可以比第一个问题匹配更多的节点。甚至问题本身也是模糊的。。。第二种方法显然是减少代码行数,提高“编写效率”,但这并不一定等同于“提高处理效率”。假设这是关于性能的,您的情况可能会令人毛骨悚然,但这可能是一个很好的解读:第一种方法只测试与选择器匹配的第一个元素的内容,但随后它将类添加到所有类中。第二个版本测试与类匹配的每个元素的内容,并将新类添加到包含FREE
的每个元素中。
var elem = $('.shipping .price');
if (elem.text() === "FREE"){
elem.addClass('text-primary');
}