Лучший способ ссылки на корневой элемент HTML с JQuery? - PullRequest
6 голосов
/ 10 июля 2011

Каков наилучший способ (с точки зрения производительности) получить корневой узел документа (элемент <html>) в jQuery? Я могу думать о нескольких методах, которые могут или не могут работать:

$("html")

$(document.documentElement)

$(document) (?)

$.root (?)

$.document (?)

Ответы [ 3 ]

14 голосов
/ 10 июля 2011

$(document.documentElement) является самым быстрым, с некоторым запасом (см. Тесты здесь ).

Вы можете получить более полное представление о том, почему это так, посмотрев на Исходный код jQuery (посмотрите на функцию init, в частности, часть, которая обрабатывает элемент DOM, и часть, которая обрабатывает строку).

1 голос
/ 10 июля 2011

Я не думаю, что это действительно так сильно отличается, но $("html") кажется наиболее читабельным и, следовательно, логичным вариантом.

0 голосов
/ 10 июля 2011

По словам Адди Османи, селекторы id и element являются самыми быстрыми.

http://addyosmani.com/jqprovenperformance/

См. Слайды 21 и 25.

Так я и говорю $("html")

Согласитесь с @AlienWebguy, что вы можете запускать собственные тесты на jsperf.com .

...