2010-05-28 26 views

回答

4

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

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

虽然这可能是更多你想要什么:

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

这并不真的有很多工作要做,jQuery的,除了因为它是一种方便的方法来得到答案。

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

现在n持有元素的jQuery已经 '感动'(添加数据,如数量事件处理程序)。

此前,这曾经是一个很大的问题,因为它会'触摸'每个元素,即使是检查的数据。这个不愉快在jQuery 1.4中修复。

至于清理内容,是的,你可以使用innerHTML= ''删除所有的内容,而不给jQuery有机会分离它的数据非常缓慢。如果你知道这个元素中没有'被触动'的元素,那么这是一个胜利,否则这是一个潜在的内存泄漏,直到页面被重新加载,因为未使用的数据仍然存在。

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

(因为没有浏览器的原生加速样querySelectorAll所比对的代表团需要做一个特定选择的元素,这是提出了选择器,API等级2)

+0

+1 - 我想知道有关。我知道jQuery向元素添加了一个序列号,但不知道jQuery引用它们的位置。 – user113716 2010-05-28 14:22:38

+0

谢谢,非常有帮助。 – Cheeso 2010-05-28 14:50:26

相关问题