使用 jQuery 获取所有 DOM 元素的最佳方法
使用 jQuery 获取页面上所有 DOM 元素的最佳方法是什么?
谢谢,
DLiKS
编辑:这用于使用grayscale.js对整个页面进行灰度化的脚本 - http: //james.padolsey.com/demos/grayscale/。 jQuery 因为我可以! :P
What's the best way to get all of the DOM elements on a page using jQuery?
Thanks,
DLiKS
Edit: This is for use in a script that grayscales an entire page using grayscale.js - http://james.padolsey.com/demos/grayscale/. jQuery because I can! :P
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为此,您实际上并不需要 jQuery:
You don't really need jQuery for this:
document.getElementsByTagName("*")
将返回所有 DOM 元素作为“实际”元素,及其所有内容和属性以及所有内容。$('*')
或$("body *")
将返回“jQuery 对象”数组,每个对象仅指向 true 元素。要获取真正的元素,您必须使用特定的 jQuery 对象。猜测这种差异是导致获取所有元素与获取所有 jQuery 对象时浏览器崩溃的行为的原因。
document.getElementsByTagName("*")
will return all DOM elements as "actual" elements, with all their contents and properties and everything.$('*')
or$("body *")
will return array of "jQuery objects", each only pointing on true element. To get the true element, you'll have to use the specific jQuery object.Guess this difference is what causing this behavior of browser crashing when getting all elements vs. getting all jQuery objects.
看来你想要
$("body *")
,它相当于document.documentElement.getElementsByTagName('*')
奇怪的是,
getElementsByTagName('*' )
似乎使我的 Firefox/Firebug 崩溃,而 jQuery 版本工作正常It seems you want
$("body *")
, which is equivalent todocument.documentElement.getElementsByTagName('*')
Weirdly,
getElementsByTagName('*')
seems to crash my Firefox/Firebug, while jQuery version works fine