Это будет небольшая статья о том, как получить доступ к переменной области действия в javascript. Давайте взглянем на следующий сегмент кода.

$('.element').click(function(){
   console.log(this)
   // this is a reference to the element clicked on
});

Если вы проверите консоль во время выполнения приведенного выше кода, вы увидите вывод ссылочного элемента, на который нажали. Это нормально, пока нам не понадобится получить доступ к объекту ссылки в другой области.

$('.element').click(function(){
    console.log(this);
    // this is a reference to the element clicked on
    $('.elements').each(function(){
        console.log(this);
        //in this scope, it will represent the current loop element
    });
})

Чтобы преодолеть эту проблему, есть простое решение. Назначение этойпеременной пользовательской переменной. Решение простое.

$('.element').click(function(){
    console.log(this);
    var that = this;
    // this is a reference to the element clicked on
    $('.elements').each(function(){
        console.log(this);
        //in this scope, it will represent the current loop element
        console.log(that)
        //You still have the reference object which the click initiated
    });
})

А пока я бы не рекомендовал называть переменную так , поскольку это усложнит весь сценарий, если он будет состоять из нескольких строк кода. Итак, используйте более описательный метод именования.