Значение this
зависит от контекста, в котором он находится. Блок if
не вводит новый контекст для this
. Я думаю, вы, вероятно, озадачены тем, как this
может использоваться внутри функции обратного вызова jQuery. Только функции и классы вводят новый контекст. jQuery автоматически связывает текущий элемент в своих функциях обратного вызова как значение this
.
Итак, что вы могли бы сделать, чтобы получить this
для ссылки на каждый элемент, выполнив функцию для каждого из выбранных элементов:
$(".addressField").filter(function(){
return $(this).value() === ""
}).each(function() {
$(this).parent().addClass("hide");
});
Но то, что вы пытаетесь сделать, легче сделать с помощью следующего кода:
$(".addressField").filter(function(){
return $(this).value() === ""
}).parent().addClass("hide");
Вы все .addressField
s, отфильтруйте все не пустые, возьмите их parent s и затем выполните то, что вы хотите, на всех них сразу.