我尝试使用这样的锚点来获取网址的值:http://website/list/#/genre/song
它在jquery中,因为在我获得值之后,我必须编辑html标签内容。
我用:
检索哈希值 var hash = window.location.hash.substring(1);
我有两个变量:
var genre;
var song;
问题是网址中可能有两种可能性:
http://website/list/#/genre
或http://website/list/#/genre/
或
http://website/list/#/genre/song
或http://website/list/#/genre/song/
如果我们在案例1中,我会有'流派'哈希变量的值
如果我们在案例2中,我会有'流派'和歌曲'哈希变量的值
我的jquery函数实际上很简单:
$(function(){
var hash = window.location.hash.substring(1);
var url_parts = hash.replace(/\/\s*$/,'').split('/');
console.log("result: "+url_parts);
});
我不知道如何考虑这两种情况。实际上我只是得到一个完整的字符串。
如果我尝试http://website/list/#/genre/
,结果是:
result: ,genre
你可以帮帮我吗?
答案 0 :(得分:1)
在拆分后测试特定索引是否存在:
$(function(){
var hash = window.location.hash.substring(1);
var url_parts = hash.replace(/\/\s*$/,'').split('/');
genre = url_parts.length >= 2 ? url_parts[1] : '';
song = url_parts.length >= 3 ? url_parts[2] : '';
console.log("result: "+url_parts);
});