В чем разница между "$ (this)" и "w640"?

Я читал http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery. И запутался с использованием this в этих двух сегментах кода.

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

    $(document).ready(function() {
      // use this to reset several forms at once
       $("#reset").click(function() {
        $("form").each(function() {
         this.reset();
        });
     });
   });

Когда нам нужны $(this) и this? И в чем разница между ними? Спасибо заранее.

Ответы

Ответ 1

this относится к самому элементу DOM; $(this) обертывает элемент вверх в объект jQuery.

В первом примере вам нужно $(this), потому что .append() - это метод jQuery.

Во втором примере reset() - это метод JavaScript, поэтому никакой обертки jQuery не требуется.

Ответ 2

this сам по себе является обычным объектом.

$(this) принимает this и добавляет обертку jQuery, чтобы вы могли использовать методы jQuery с объектом.

Ответ 3

this относится к объекту DOM. Таким образом, reset() является функцией объекта DOM формы. append() С другой стороны, это метод jQuery, поэтому он должен быть вызван объектом jQuery, следовательно $(this).

Когда вы окружаете this с помощью $, вы получаете объект jQuery назад, представляющий этот объект DOM.

Ответ 4

Как правило, в jQuery this будет экземпляром соответствующего элемента DOM, а $(this) строит объект jQuery вокруг this, который дает вам обычные методы jQuery, такие как each() и val().

Ответ 5

вам нужно всего $(this), если вы выполняете его с помощью функции jquery в той же строке кода.

ex: $(this).find(...);    $(this).val();   etc

иначе вам понадобится this.