Учитывая следующий пример HTML...
<div id='div1'>div one</div>
<div id='div2'>div two</div>
... Я обнаружил, что следующий код jQuery...
$('#div1').click(function() {
var $d = $(this); // Using 'this' instead of '#div1'
$d.add('#div2').remove();
});
... не добавит #div2
в набор, на который ссылается $d
, но этот код...
$('#div1').click(function() {
var $d = $('#div1'); // Using '#div1' instead of 'this'
$d.add('#div2').remove();
});
... успешно добавлено #div2
.
После консультации с firebug я обнаружил, что использование $(this)
предоставило jQuery-объекту контекст #div1
, но выполнение $('#div1')
дало объекту контекст document
.
Учитывая эту информацию, я пробовал...
var $d = $(this, document);
... и функция add()
работала должным образом.
Итак, вот вопрос. Может ли кто-нибудь объяснить мне, почему при использовании $(this)
vs $('#div1')