0

我有许多<div>s 的动态 HTML,它们的类groupXwhereX是一个介于 1 和 100 之间的数字。我需要找出有多少组正在用于应用程序的其他地方,并且目前有以下代码:

for(i = 0; i <= 100; i++){                       
  if($j('.group' + i).size() > 0) {          
    totalAmountOfGroups++; 
  }
} 

它可以工作,虽然有时只能使用 6 个组,所以我不必要地循环了 94 次,想知道这是否会影响速度(尤其是里面的 jQuery)

4

3 回答 3

3

这取决于在for. 问题中的那个似乎不太贵。但是,我会寻求不同的解决方案。生成 HTML 时,您可以在没有计数器的情况下向元素添加另一个类。例如class="group group14"。这样你就可以使用选择器$('.group'),这样你就可以只遍历你需要的元素。

于 2013-02-26T10:46:16.773 回答
2

像这样试试

这不是一个好方法,但比你接近更快。最好的方法是按类“组”标记所有元素,并将组号存储在数据属性中,如 data-group="n"。在此之后,您可以通过一次操作选择所有元素,然后迭代所选元素以从属性中提取组号。

于 2013-02-26T11:17:28.433 回答
1

您可以将另一个类添加到您的组中,我们称之为分组,然后使用正则表达式过滤它们

var total = 0;
total = $('.grouped').filter(function(){
    return $(this).attr('class').match(/group[d+]/g);
}).size();
于 2013-02-26T10:47:10.953 回答