在jquery中的url(anchor)中获取许多#hash值

时间:2015-10-06 19:44:43

标签: javascript jquery hash anchor

我尝试使用这样的锚点来获取网址的值:http://website/list/#/genre/song

它在jquery中,因为在我获得值之后,我必须编辑html标签内容。

我用:

检索哈希值
 var hash = window.location.hash.substring(1);

我有两个变量:

var genre;
var song;

问题是网址中可能有两种可能性:

  1. http://website/list/#/genrehttp://website/list/#/genre/
    1. http://website/list/#/genre/songhttp://website/list/#/genre/song/
    2. 如果我们在案例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
      
      你可以帮帮我吗?

1 个答案:

答案 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);
 });