2014-09-03 27 views
0

在我的網站上,我有一個有數萬個單元格的巨大表格(一些單元格有一個名爲myClass1的類別)。假設表格有100000個單元格。我可以通過以下兩種方式之一添加一個新的類(myClass2)與類的MyClass1的所有單元格:jQuery函數的價格是多少?

$("#myTable td.myClass1").addClass("myClass2"); 

或者我可以使用。每():

$("#myTable td").each(function (i) { 
    if ($(this).hasClass("myClass1")) { 
     $(this).addClass("myClass2"); 
    } 
}); 

我讀過.each()很快,但它調用jQuery函數($)2(每循環迭代)x 100000次。即使第一種方法比較慢,那麼通過調用$ 200000次,這會使第一個方法(它調用$一次)更好,那麼該網站是不是會打到 ?還是我在這裏?

回答

1

第一個會更快,因爲它使用本地css選擇器支持來過濾元素,其中第二個元素是我們執行的手動過濾器。

Benchmark Profile

+0

很好的答案......感謝jsperf支持你的回答。第二種方法慢了40%以上 – 2014-09-03 03:22:04

相關問題