如何确定页面上有多少jQuery对象?

时间:2010-05-28 14:04:03

标签: javascript jquery

我可以确定页面上jQuery对象的数量吗?

我想使用元素的数量作为页面复杂性的一种弱基准。我想如果我可以减少jQuery知道的元素数量,页面可能会更有效地运行。

这有意义吗?

是否像执行* select和计算结果一样简单?


相关


How can I clear content without getting the dreaded “stop running this script?” dialog?

3 个答案:

答案 0 :(得分:4)

http://api.jquery.com/size/

var elementCount = $('*').size();

虽然这可能更符合您的要求:

var elementCount = $('body').find('*').size()

答案 1 :(得分:3)

var n= 0;
for (var i in jQuery.cache)
    n++;

现在n包含jQuery已“触摸”的元素数量(向事件处理程序添加数据)。

以前这曾经是一大堆,因为它会“触摸”每个元素甚至检查的数据。这种不愉快在jQuery 1.4中得到修复。

至于清除内容,是的,您可以使用innerHTML= ''删除所有内容,而不会让jQuery有机会非常缓慢地分离其数据。如果您知道元素内部没有“触及”元素,那么在重新加载页面之前,这是一个潜在的内存泄漏,因为未使用的jQuery.cache数据会保留。

使用live() / delegate()事件绑定可以避免向目标元素添加数据,这可以让您更自由地使用此快捷方式。但是,如果要绑定很多事件,并且它们不是很容易快速匹配的选择器,则会使事件处理变慢。

(因为没有像querySelectorAll这样的浏览器原生加速,可以根据委托需要来匹配特定选择器的元素;这是针对Selectors-API级别2提出的。)

答案 2 :(得分:0)

var elementCount = $('*').length;

这与jQuery没什么关系,只要它是一种方便的方式来获得答案。

相关问题