我正在尝试通过删除前导#
将所有片段链接转换为相对链接,但以下内容不会运行:
$('a[href^=#]').attr('href', $(this).attr('href').substring(1));
如果我将$(this).attr('href').substring(1)
替换为$(this).attr('href')+'test'
或'test'+'TEST'.substring(1)
则会运行。 $(this).attr('href').substring(1)
出了什么问题?
答案 0 :(得分:4)
您的$(this)
未引用选择器找到的<a>
标记,而是引用代码的当前范围。您需要使用function overload of attr代替:
$('a[href^=#]').attr('href', function(i, attr) {
return attr.substring(1);
});