【问题标题】:get many #hash values in url (anchor) in jquery在jquery的url(锚)中获取许多#hash值
【发布时间】:2016-01-03 20:48:40
【问题描述】:

我尝试使用如下锚获取 url 的值:http://website/list/#/genre/song

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

我使用以下方法检索哈希值:

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

我有 2 个变量:

var genre;
var song;

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

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

  1. 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

你能帮帮我吗?

【问题讨论】:

  • w/var parts=location.hash.split("/").filter(String);部分[0]=流派和部分[1]=歌曲(如果有)
  • with website/list/#/genre/song ` var parts=location.hash.split("/").filter(String); console.log("流派:"+parts[0]+", 歌曲:"+parts[1]); ` 我得到流派:#,歌曲:流派
  • 哎呀,让parts=location.hash.slice(1).split...
  • 是的,它有效!谢谢!

标签: javascript jquery hash anchor


【解决方案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);
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2011-04-02
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多