Получение базового элемента из объекта jQuery - PullRequest
67 голосов
/ 07 сентября 2008

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

$('#MyObject')

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

document.getElementById('MyObject')

Ответы [ 4 ]

95 голосов
/ 07 сентября 2008
$('#MyObject').get(0);

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

$('#MyObject')[0];

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

54 голосов
/ 07 сентября 2008

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

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

9 голосов
/ 07 сентября 2008

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

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

5 голосов
/ 30 мая 2013

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

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

против

$('#MyObject')[0];

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

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

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

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