В чем разница между "$ (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
.