В даний час я працюю з цим підручником: Початок роботи з 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");
І так далі...
Так, використовуючи $(this)
, ви включили функціональність jQuery для об'єкта. Просто використовуючи this
, він має лише загальну функціональність Javascript.