如何用jQuery为新窗口打开的链接添加aria-label属性
修正后的代码实现需求
你的原代码存在语法错误和逻辑细节问题,以下是修正后的jQuery版本:
$('body a[target="_blank"]:not([aria-label])').attr("aria-label", function() { return $(this).text().trim() + " - opens in new tab"; });
修正说明:
- 使用回调函数作为
attr()的第二个参数,能为每个匹配的链接单独生成对应的aria-label值 - 用
$(this).text()获取当前链接的文本内容,搭配.trim()去除文本前后的多余空格,避免生成的标签值出现无效空白 - 拼接字符串时补充了空格,保证格式和示例一致(比如生成
My link - opens in new tab而非My link- opens in new tab) - 修复了原代码中的语法错误:移除了多余的
},补全了函数的正确结构
如果不需要依赖jQuery,也可以用原生JavaScript实现相同功能:
document.querySelectorAll('body a[target="_blank"]:not([aria-label])').forEach(link => { link.setAttribute('aria-label', link.textContent.trim() + ' - opens in new tab'); });
内容的提问来源于stack exchange,提问作者DeanH
相关产品推荐
相关产品推荐

