0

对昨天的一个问题的跟进。我有一个改变值的散列,需要隔离下半部分。下面的代码可以工作,但如果没有值,则需要返回 false,因为我if (val.length){}稍后会使用它,并且它目前始终为 true。所以,为了证明:

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

谢谢你的帮助!

4

2 回答 2

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

PS我会建议你添加JavaScript标签,也许删除jQuery标签,因为这是一个与jQuery完全无关的问题。

于 2012-06-28T00:35:12.563 回答
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);
于 2012-06-28T00:49:02.863 回答