jQuery: разница между указателями $(this) и this

Вопрос

Я не совсем понимаю разницу между указателями $(this) и this в jQuery. Судя по всему, $(this) используется куда более чаще.

Предположим, есть 2 фрагмента кода:

$("#orderedlist").find("li").each(function(i) {
    $(this).append( "Номер " + i );
});
$("#reset").click(function() {
    $("form").each(function() {
       this.reset();
    });
});

В первом фрагменте мы использовали $(this), чтобы добавить некий текст внутрь каждого элемента li. Насколько я понимаю, мы выбрали именно этот указатель, поскольку нам необходимо обратится элементу списка, так сказать, не в его «первозданном» виде, а в виде jQuery-сущности, чтобы вызвать метод append().

Во втором примере мы использовали непосредственно this для сброса формы. Метод reset() - это прямой JavaScript-метод, обращаться к форме как jQuery-сущности нет необходимости.

Я правильно понимаю ситуацию? Спасибо большое!


Ответ №1

Да, Вы всё правильно понимаете. Вам нужен $(this), когда Вы собираетесь работать с объектом jQuery. Если же Вы хотите обратиться напрямую к объекту DOM, тогда Вам нужен именно this.

Стоит учитывать, что jQuery всегда возвращает массив, даже в том случае, если найден всего один элемент (тогда он будет первым, а точнее - нулевым элементом массива). Поэтому справедливым будет выражение $(this)[0] == this. Здесь важно понимать, что обращение к элементу jQuery по индексу в квадратных скобках вернёт не объект типа jQuery (как мог бы подумать новичёк), а соответствующий ему объект DOM. Если же вы хотите из массива jQuery получить первый объект в виде jQuery-сущности, используйте для этого функцию eq().

Учитывая вышесказанное, справедливым будет выражение:

$("#mydiv")[0] == document.getElementById("mydiv")

13 комментария

  • MichlAffonia:

    Дома есть интернет, продайте часть своего трафика и получи деньги через 15 — 20 мин!Подробнее….

  • AlysonFso:

    My friend and I went camping the other day. It was a tiring experience, as he wouldn’t let me sleep all night. He kept talking about random things and cried about his anxiety. I totally told him to this and deal with it.

  • HaywoodViG:

    Чтобы построить по-настоящему теплоэффективный дом, надо позаботиться об утеплении не только стен, но и крыши, подробнее об этом читайте на сайте teletap.org

  • Rickeyluh:

    Производство мебели на заказ в Санкт-Петербурге, подробности смотрите на сайте akro-spb.ru

  • CharlesbRevy:

    Ученые из США проанализировали данные 46034 исследований, в которых применялись методы визуализации мозга. У женщин активность мозга оказалась выше, чем у мужчин. Подробнее читайте на сайте domoxozyaiki.ru

  • Scotttiz:

    Женские формы тела всегда привлекают мужчин, но не все женщины являются обладательницами красивой и пышной фигуры. Иногда, что бы достичь максимального эффекта, нужно хорошо попотеть над собственными формами в спортзале, но есть и другие, менее требовательные способы. Подробнее читайте на сайте juliy.info

  • ThomasVexed:

    Женские истории обо всем: о модных тенденциях и личном стиле, красоте, уходе за собой, а также о любви, отношениях. Увлекательные бесплатные тесты для девушек не дадут вам заскучать, откроют что-то новое, как в вас самих, так и в окружающих людях. А еще у нас на сайте вы сможете рассчитать дату овуляции, примерную дату рождения малыша и даже произвести расчет вашего числа судьбы! Подробнее читайте на сайте ladystory.ru

  • DonaldGlype:

    Американская компания Zebra Medical Vision представила алгоритмы искусственного интеллекта, которые помогут проведению полного медицинского обследования, подробнее об этом читайте на сайте tvoi-noski.ru

  • Ernestaccug:

    Мама не только не досыпает ночами, волнуется и заботиться, чтобы ребёнок был здоров, счастлив. Мама – это окно в большой мир! Она помогает ребёнку понять красоту мира. Мама с нами всю жизнь.Подробнее читайте на сайте farvarter.ru

  • ManuelFrale:

    Загородное строительство всегда было популярным во все времена. Потребители, устав от суеты шумных городов, устремлялись на природу, подробнее об этом читайте на сайте montazhnik02.ru

Добавить комментарий


(обязательно)