使用jQuery获取所有DOM元素的最佳方法
使用jQuery在页面上获取所有DOM元素的最佳方法是什么?
谢谢,
DLiKS
编辑:这适用于使用grayscale.js灰色整个页面的脚本 – http://james.padolsey.com/demos/grayscale/ 。 jQuery,因为我可以! :P
var allOfThem = $('*');
你真的不需要jQuery:
var allOfThem = document.getElementsByTagName('*');
document.getElementsByTagName("*")
将所有DOM元素作为“实际”元素返回,包含其所有内容和属性以及所有内容。
$('*')
或$("body *")
将返回“jQuery对象”数组,每个对象仅指向true元素。 要获得真正的元素,您必须使用特定的jQuery对象。
猜测这种差异是导致浏览器在获取所有元素与获取所有jQuery对象时崩溃的原因。
看起来你想要$("body *")
,相当于document.documentElement.getElementsByTagName('*')
奇怪的是, getElementsByTagName('*')
似乎崩溃我的Firefox / Firebug,而jQuery版本工作正常