Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery if()vs:contains_Jquery_Performance - Fatal编程技术网

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'); 
}