$(this) 正在选择 window 对象而不是点击的元素 jquery
$(this) is selecting window object instead of clicked element jquery
我有一个非常奇怪的问题。我只是想 select 一个点击的元素。我做了很多次,它总是有效,但这次,jQuery $(this) selector doesn't select clicked element, it selects window 对象。请让我知道,如果你有想法,这可能是什么原因。我正在使用 jQuery 2.1.4 和 Twitter Bootstrap 3.3.5
HTML:
<a class="btn btn-danger btn-xs delete-file"><i class="fa fa-trash" aria-hidden="true"></i> Löschen</a>
jQuery:
$(document).ready( () => {
$('.delete-file').on('click', () => {
let element = $(this);
console.log(element);
});
});
控制台输出:
n.fn.init [Window]
而不是:
n.fn.init [a.btn.btn-danger.btn-xs.delete-file]
提前致谢!
这是因为你使用了箭头函数。根据标准函数定义,此函数内容的范围不会改变。要使 this
正常工作,您需要更改逻辑:
$(document).ready(() => {
$('.delete-file').on('click', function() {
let element = $(this);
console.log(element);
});
});
或者,您可以保留箭头功能并通过引发事件的 target
属性 检索对单击元素的引用:
$(document).ready( () => {
$('.delete-file').on('click', e => {
let element = $(e.target);
console.log(element);
});
});
我有一个非常奇怪的问题。我只是想 select 一个点击的元素。我做了很多次,它总是有效,但这次,jQuery $(this) selector doesn't select clicked element, it selects window 对象。请让我知道,如果你有想法,这可能是什么原因。我正在使用 jQuery 2.1.4 和 Twitter Bootstrap 3.3.5
HTML:
<a class="btn btn-danger btn-xs delete-file"><i class="fa fa-trash" aria-hidden="true"></i> Löschen</a>
jQuery:
$(document).ready( () => {
$('.delete-file').on('click', () => {
let element = $(this);
console.log(element);
});
});
控制台输出:
n.fn.init [Window]
而不是:
n.fn.init [a.btn.btn-danger.btn-xs.delete-file]
提前致谢!
这是因为你使用了箭头函数。根据标准函数定义,此函数内容的范围不会改变。要使 this
正常工作,您需要更改逻辑:
$(document).ready(() => {
$('.delete-file').on('click', function() {
let element = $(this);
console.log(element);
});
});
或者,您可以保留箭头功能并通过引发事件的 target
属性 检索对单击元素的引用:
$(document).ready( () => {
$('.delete-file').on('click', e => {
let element = $(e.target);
console.log(element);
});
});