jQuery устанавливает this
сам, как правило, для указания на текущий элемент.
В противном случае в JavaScript ...
Как функция, назначенная для свойства
var a = {
b: function() {
// `this` is `a`
}
}
a.b();
За исключением , где свойство становится присвоенным переменной.Наблюдайте ...
var c = a.b;
c(); // the `this` will point to `window`
как функцию, назначенную переменной
var a = function() {
// `this` is `window`
}
a();
как конструктор
var C = function() {
// `this` is `c`
}
var c = new C();
Обратите внимание, что еслиЕсли вы забыли создать экземпляр с new
, JavaScript назначит эти свойства глобальному объекту (window
в браузере).
В глобальной области видимости
// In global scope `this` is `window`
var d = this;
Как вызывается с call()
или apply()
Вы также можете установить this
явно с помощьюcall()
и apply()
методы функций.
Теперь к вашей проблеме ...
Спасибо за объяснение 'этого', но я все еще не понимаю, почемуссылка не работает в моем коде
Мои извинения.
$(this).name
не будет работать, поскольку this
теперь является объектом jQuery и имеет только несколько свойств (ни один из которых не является name
).
Либо используйте $(this).attr('name')
, либо удалите перенос this
с объектом jQuery и просто получите доступ к this.name
.