В чому різниця між '$(це)' і 'це'?

В даний час я працюю з цим підручником: Початок роботи з jQuery.

Для двох прикладів нижче:

$("#orderedlist").find("li").each(function (i) {
    $(this).append(" BAM! " + i);
});
$("#reset").click(function () {
    $("form").each(function () {
        this.reset();
    });
});

Зверніть увагу, що в першому прикладі ми використовуємо $(this) для додавання тексту всередині кожного елемента li. У другому прикладі ми використовуємо this безпосередньо при скиданні форми.

Здається, що $(this) використовується набагато частіше, ніж this.

Я вважаю, що в першому прикладі $() перетворює кожен елемент li в об'єкт jQuery, який розуміє функцію append(), тоді як у другому прикладі reset() може бути викликаний безпосередньо на формі.

В основному $() потрібна для спеціальних jQuery-функцій.

Чи правильно це?

Рішення

Так, вам потрібен $() тільки тоді, коли ви використовуєте jQuery. Якщо вам потрібна допомога jQuery для роботи з DOM, просто майте це на увазі.

$(this)[0] === this

По суті, кожного разу, коли ви отримуєте набір елементів назад, jQuery перетворює його на об'єкт jQuery. Якщо ви знаєте, що у вас є тільки один результат, він буде в першому елементі.

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

І так далі...

Коментарі (3)

Так, для функцій jQuery потрібен $(this), але коли ви хочете отримати доступ до базових методів javascript елемента, які не використовують jQuery, ви можете просто використовувати this.

Коментарі (0)

Так, використовуючи $(this), ви включили функціональність jQuery для об'єкта. Просто використовуючи this, він має лише загальну функціональність Javascript.

Коментарі (0)