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

StackOverflow https://stackoverflow.com/questions/47837

  •  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.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top