Получение базового элемента из объекта jQuery
-
09-06-2019 - |
Вопрос
Я изо всех сил пытаюсь найти здесь правильную терминологию, но если у вас есть объект jQuery...
$('#MyObject')
...можно ли извлечь базовый элемент?Это означает, что эквивалент этого:
document.getElementById('MyObject')
Решение
Да, используйте .get(index)
.Согласно документация:
А
.get()
метод предоставляет доступ к узлам DOM, лежащим в основе каждого объекта jQuery.
Другие советы
$('#MyObject').get(0);
Я думаю, это то, чего ты хочешь.Я думаю, вы также можете ссылаться на него как на обычный массив с помощью:
$('#MyObject')[0];
Но я не уверен, что это всегда будет работать.Придерживайтесь первого синтаксиса.
Объект jQuery представляет собой набор элементов.В вашем случае набор из одного элемента.Это отличается от некоторых других библиотек, которые оборачивают отдельные элементы и предоставляют альтернативный синтаксис для селекторов, возвращающих несколько совпадений.
Аарон В и ВолкерК уже объяснялось, как получить доступ к первому элементу (индекс 0) в наборе.
Я проверил утверждения Аарона на всех браузерах, которые есть на моем компьютере:
$('#MyObject').get(0);
против
$('#MyObject')[0];
Насколько я могу судить, это всего лишь вопрос личных предпочтений.
Функционально оба эти утверждения эквивалентны как для существующих, так и для несуществующих элементов.Я протестировал следующие браузеры:Хром 27.0, ФФ 21.0, IE10, IE9, IE8, IE7, IE6.
В тестах скорости, которые я проводил, не всегда можно было определить, какой вариант быстрее;результат не всегда был последовательным, даже в одном и том же браузере.Для тестов скорости я тестировал только существующие элементы.Результаты моего теста здесь.