Any ideas how can I write this:
var hashValue = "#" + window.location.hash.substr(1);
$([document.documentElement, document.body]).animate({
scrollTop: $(hashValue).offset().top
}, 500);
Without getting this error:
Uncaught Error: Syntax error, unrecognized expression: #
It is working like that, but I don't want to see this error in the console.
var hashValue = "#" + window.location.hash.substring(1);
$([ document.documentElement, document.body ]).animate({
scrollTop: hashValue === '#' ? 0 : $(hashValue).offset().top
}, 500);
Let’s just assume window.location.hash
is the empty string. In this case hashValue
is "#"
.
So the jQuery call $(hashValue)
doesn’t recognize it as an element ID, so it throws a syntax error.