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

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

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

这有意义吗?

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


有关:
如何在不让可怕的“停止运行此脚本?”对话框的情况下清除内容?

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

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

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

 var elementCount = $('body').find('*').size() 
 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提出的。)

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

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