0
    hash = hash.replace( /^#/, '' );
var node = $( '#' + hash );
if ( node.length ) {
  node.attr( 'id', '' );
}
document.location.hash = hash;
if ( node.length ) {
  node.attr( 'id', hash );
}

我在使用上面的代码时遇到了问题,我从这篇文章中获取:Modifying document.location.hash without page scrolling,在我将 location.hash 更改为所述 id 时尝试临时替换 div 的 id。hash 在控制台中出现了这个错误: Uncaught ReferenceError: hash is not defined。我是 JS 新手,需要一些指导!谢谢 :)

4

2 回答 2

1
  • 确保您已正确定义hash.

  • return false如果您正在处理锚点的点击事件,请确保您也这样做。

于 2012-11-06T01:31:51.920 回答
1

第一行似乎是错误的:

hash = hash.replace( /^#/, '' );

你确定你在它之前定义了哈希变量吗?

我认为它必须是这样的:

var hash = document.location.href;
hash = hash.replace( /^#/, '' );

然后其余代码不应导致错误

于 2012-11-06T01:29:43.923 回答