Извлечение собственных элементов DOM из объектов jQuery? - PullRequest
15 голосов
/ 24 февраля 2010

Как я могу заставить jQuery возвращать нативные элементы DOM, которые он инкапсулирует?

Ответы [ 5 ]

29 голосов
/ 24 февраля 2010

Когда вы находите элементы с помощью jQuery, вы можете получить их с помощью функции "get":

var regularElement = $('#myElementId').get(0);

Внутри функции ".each ()" указатель "this" ссылается на "настоящий" элемент:

$('input.special').each(function() {
  var type = this.type;
  this.value = "exploding balloon";
  // etc
})

Использование jQuery не делает Javascript «другим». Это это Javascript, а DOM по-прежнему DOM.

2 голосов
/ 24 февраля 2010

jQuery использует Sizzle Selector Engine *. Вы также можете использовать его самостоятельно.

* Подтверждено Дагом Нейнером, что означает, что он прав;)

2 голосов
/ 24 февраля 2010

$('myTag').get(0) возвращает элемент HTML.

0 голосов
/ 24 февраля 2010

Другие люди уже прямо ответили на вопрос. Используйте метод get ().

Однако, в большинстве случаев вы хотите использовать методы jQuery для выполнения манипуляций, а не для получения доступа к элементу необработанного DOM и его модификации с использованием «стандартного» JavaScript.

Например, с помощью jQuery вы можете просто сказать $ ('mySelector'). AddClass ('myClass'), чтобы добавить класс CSS к элементу DOM. Это намного сложнее (и зависит от браузера) с использованием прямой манипуляции с DOM. Эта концепция распространяется практически на все другие манипуляции с DOM, которые вы хотели бы сделать.

0 голосов
/ 24 февраля 2010

Я предполагаю, что вы пытаетесь проверить, является ли ваш объект jQuery первым экземпляром "cheese_tag". Вы можете найти первый тег с помощью селектора :first, и тогда вам не нужно будет делать сравнение. Например, получить первый тег div будет: $('div:first').

Полный список селекторов jQuery см. В документации .

.
...