Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery获取所有DOM元素的最佳方法_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 使用jQuery获取所有DOM元素的最佳方法

Javascript 使用jQuery获取所有DOM元素的最佳方法,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,使用jQuery获取页面上所有DOM元素的最佳方法是什么 谢谢 德利克斯 编辑:用于使用grayscale.js-对整个页面进行灰度化的脚本。jQuery,因为我可以P var allOfThem = $('*'); 您不需要jQuery来实现这一点: var allOfThem = document.getElementsByTagName('*'); 似乎您想要$(“body*”),这相当于document.documentElement.getElementsByTagName('*'

使用jQuery获取页面上所有DOM元素的最佳方法是什么

谢谢

德利克斯

编辑:用于使用grayscale.js-对整个页面进行灰度化的脚本。jQuery,因为我可以P

var allOfThem = $('*');
您不需要jQuery来实现这一点:

var allOfThem = document.getElementsByTagName('*');
似乎您想要
$(“body*”)
,这相当于
document.documentElement.getElementsByTagName('*')


奇怪的是,
getElementsByTagName('*')
似乎使我的Firefox/Firebug崩溃,而jQuery版本运行良好

文档。getElementsByTagName(“*”)
将以“实际”元素的形式返回所有DOM元素,以及它们的所有内容、属性和一切

$('*')
$(“body*”)
将返回“jQuery对象”数组,每个对象仅指向true元素。要获得true元素,必须使用特定的jQuery对象


我猜这一差异是导致浏览器在获取所有元素和获取所有jQuery对象时崩溃的原因。

我认为这取决于您将如何处理这些元素。你能说得更具体一点吗?我想我看过这部电影一次,结局并不好。如果这是完成任务的最佳方式,我会感到惊讶,不管是什么。也许其中一部电影有奖。不-要通过jQuery获得所有文本节点,我想你必须努力。您必须通过DOM API或使用jQuery
.contents()
@jAndy向下搜索树来查找它们:但是,值得注意的是,它确实返回IE8和更早版本上的注释节点。document.getElementsByTagName(“*”)将返回所有DOM元素作为“实际”元素,//lie。有时,似乎不可能在某一步枚举所有实际元素。参考我的DOM/Gmail问题,寻找长代码来枚举所有帧中的所有元素。