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

この記事から取得した上記のコードに問題があります:ページをスクロールせずにdocument.location.hashを変更し、location.hashを上記のIDに変更している間にdivのIDを一時的に置き換えようとしています。hashは、コンソールに次のエラーを出します。Uncaught ReferenceError:ハッシュが定義されていません。私はJSを初めて使用するので、少しガイダンスが必要です。ありがとう :)

4

2 に答える 2

1

最初の行は間違っているようです:

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

その前にハッシュ変数を定義しましたか?

私はそれがこのようでなければならないと思います:

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

その後、残りのコードでエラーが発生することはありません

于 2012-11-06T01:29:43.923 に答える
1
  • を正しく定義したことを確認してくださいhash

  • return falseアンカーのクリックイベントを処理している場合も確認してください。

于 2012-11-06T01:31:51.920 に答える