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