Лучший способ получить все элементы DOM с помощью jQuery - PullRequest
3 голосов
/ 26 октября 2010

Как лучше всего получить все элементы DOM на странице с помощью jQuery?

Спасибо

DLiKS

Изменить: Это для использования в сценарии, который использует шкалу серого для всей страницы, используя grayscale.js - http://james.padolsey.com/demos/grayscale/. jQuery, потому что я могу! : P

Ответы [ 3 ]

16 голосов
/ 26 октября 2010
var allOfThem = $('*');

Для этого вам не нужен jQuery:

var allOfThem = document.getElementsByTagName('*');
1 голос
/ 26 октября 2010

document.getElementsByTagName("*") вернет все элементы DOM как «фактические» элементы со всем их содержимым, свойствами и всем.

$('*') или $("body *") вернет массив «объектов jQuery», каждый из которых будет указывать только на истинный элемент. Чтобы получить истинный элемент, вам нужно использовать конкретный объект jQuery.

Полагаю, это различие является причиной того, что такое поведение браузера вылетает при получении всех элементов, а не всех объектов jQuery.

0 голосов
/ 26 октября 2010

Кажется, вы хотите $("body *"), что эквивалентно document.documentElement.getElementsByTagName('*')

Странно, getElementsByTagName('*'), кажется, вылетает мой Firefox / Firebug, в то время как версия jQuery работает нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...