Подтвердить что ты не робот

Получение базового элемента из объекта jQuery

Я изо всех сил стараюсь найти правильную терминологию, но если у вас есть объект jQuery...

$('#MyObject')

... можно извлечь базовый элемент? Значение, эквивалентное этому:

document.getElementById('MyObject')
4b9b3361

Ответ 1

Да, используйте .get(index). В соответствии с документация:

Метод .get() предоставляет доступ к узлам DOM, лежащим в основе каждого объекта jQuery.

Ответ 2

$('#MyObject').get(0);

Я думаю, что ты хочешь. Я думаю, вы также можете ссылаться на него как на обычный массив:

$('#MyObject')[0];

Но я не уверен, что это всегда будет работать. Придерживайтесь первого синтаксиса.

Ответ 3

Объект jQuery представляет собой набор элементов. В вашем случае - набор из одного элемента. Это отличается от некоторых других библиотек, которые обертывают отдельные элементы и предоставляют альтернативный синтаксис для селекторов, которые возвращают несколько совпадений.

Aaron W и VolkerK уже объяснили, как получить доступ к первому (индексу 0) элементу в наборе.

Ответ 4

Я тестировал утверждения Aaron во всех браузерах, которые у меня есть на моем ящике:

$('#MyObject').get(0);

против

$('#MyObject')[0];

Насколько я могу судить, это только вопрос личных предпочтений.

Функционально оба этих утверждения эквивалентны как для существующих, так и для несуществующих элементов. Я протестировал следующие браузеры: Chrome 27.0, FF 21.0, IE10, IE9, IE8, IE7, IE6.

В тестах скорости, которые я запускал, не всегда можно было определить, какое изменение было быстрее; результат не всегда последователен, даже в том же браузере. Для тестов скорости я тестировал только существующие элементы. Мои результаты теста здесь.