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

标签 javascript jquery hash anchor

我尝试获取带有 anchor 的网址值,如下所示:http://website/list/#/genre/song

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

我检索哈希值:

 var hash = window.location.hash.substring(1);

我有两个变量:

var genre;
var song;

问题是url中可能有2种可能:

  1. http://website/list/#/genrehttp://website/list/#/genre/

  • http://website/list/#/genre/songhttp://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
    

    你能帮我吗?

    最佳答案

    测试拆分后是否存在特定索引:

    $(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);
     });
    

    关于javascript - 在jquery中的url( anchor )中获取许多#hash值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978375/

    相关文章:

    javascript - 将 LSystems 代码从 p5js 转换为 HTML Canvas javascript 时出现问题

    javascript - JQuery 每行多个输入字段 keyup 功能不起作用

    javascript - 我在 DOM 中呈现了两个 <nav> 标签。如何仅使用 jquery 更改顺序?

    perl - 按值对多维散列进行排序并打印最高值

    javascript - 使用正则表达式检查字符串和整数的组合

    javascript - Google map V3,如何获取标记/叠加数组?

    javascript - Node JS 如何检查现有 JSON 文件中是否已存在值

    jquery - 如何找到具有等于特定值的自定义属性的元素?

    ruby - 将哈希值分配给对象的 DRY 方法

    hash - 对 Web 服务的密码加盐的原因