javascript - 无法使用 jQuery 获取 anchor 标记的 href 值

标签 javascript jquery browser-extension opera-extension

我尝试使用 jQuery 获取 anchor 标记的 href 值,但 this 关键字未按预期工作。

source code

这是控制台中代码的结果:

devtools console

<小时/>

我有问题的代码部分:

$('#container a').click(() => {
    console.log(this);
    let link = $(this).attr("href");
    console.log("from jquery - " + link);
    //chrome.tabs.create({ url: link });
});

如您所见,this 关键字指向 window 对象。 此代码是我尝试为 Opera 构建的扩展的一部分。

最佳答案

您正在使用箭头函数 () => {..} 而不是常规函数 function () {...},这就是为什么您的 this 没有按您的预期工作。

所以代替这个:

$('#container a').click(() => { ... });

使用这个:

$('#container a').click(function() { ... });

您更新的代码:

$('#container a').click(function () {
    console.log(this);
    let link = $(this).attr('href');
    console.log(link);
})

或与箭头函数:

$('container a').click(event => {
    let link = $(event.currentTarget).attr('href');
    console.log(link);
})
<小时/>

有关箭头函数的更多信息:

关于javascript - 无法使用 jQuery 获取 anchor 标记的 href 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088222/

相关文章:

php - WooCommerce 管理产品 "general data"邮箱问题

javascript - 如何在单击按钮时获取 div 的 ID?

javascript - 获取浏览器中渲染文本的确切字体,可能使用浏览器扩展

tinymce - 如何使用文本区域的 native 编辑器(或 JS 驱动的所见即所得编辑器)?

javascript - JS - jQuery 可拖动可调整大小的容器中的多个 div 互相插入

javascript - 如何检查我网站上另一个框架的 URL 是否包含给定字符串?

javascript - 如何从外部网页引用 HTML

javascript - 在 Heroku 上使用 Node 邮件程序发送延迟的电子邮件

javascript - 如何使用 Rxjs switchMap 抛出错误

javascript - JavaScript 中的框架对象循环未定义