如何将字符串添加到 window.location.hash

How to add string to window.location.hash

任何想法我该如何写:

var hashValue = "#" + window.location.hash.substr(1);
$([document.documentElement, document.body]).animate({
        scrollTop: $(hashValue).offset().top
        
}, 500);

没有出现此错误:

未捕获错误:语法错误,无法识别的表达式:#

它是这样工作的,但我不想在控制台中看到这个错误。

var hashValue = "#" + window.location.hash.substring(1);

$([ document.documentElement, document.body ]).animate({
  scrollTop: hashValue === '#' ? 0 : $(hashValue).offset().top
}, 500);

我们假设 window.location.hash 是空字符串。在这种情况下 hashValue"#".

因此 jQuery 调用 $(hashValue) 无法将其识别为元素 ID,因此会引发语法错误。