从昨天开始跟进一个问题。我有一个更改值的哈希值,需要隔离后半部分。下面的代码可以工作,但是如果没有值则需要返回false,因为我稍后使用if (val.length){}
并且它当前始终为真。所以,要证明:
var hash = window.location.hash,
page = hash.split('=')[0],
val = hash.substr(hash.indexOf('=') + 1);
console.log(hash,page,val);
localhost/#work
console returns: #work, #work, #work
localhost/#work=misery
console returns: #work=misery, #work, misery
我希望它能够回归:
localhost/#work
console returns: #work, #work, (no value for val)
localhost/#work=misery
console returns: #work=misery, #work, misery
感谢您的帮助!
答案 0 :(得分:0)
只需使用与页面相同的方法:
var hash = window.location.hash,
values = hash.split("="),
page = values[0],
val = values[1];
console.log(hash,page,val);
localhost/#work
console returns: #work, #work, undefined
localhost/#work=misery
console returns: #work, #work, misery
P.S。 我建议你添加JavaScript标签,然后删除jQuery,因为这是一个与jQuery完全无关的问题。
答案 1 :(得分:0)
只需添加一些逻辑来检查是否有值
var hash = window.location.hash,
values = hash.split("="),
page = values[0],
val = values[1]?values[1]:'';//you can use if (val.length){} to check if ther is a value
console.log(hash,page,val);