2015-10-06 63 views
1

獲得URL(錨)許多#hash值我試圖得到一個網址的價值,像這樣的錨:http://website/list/#/genre/songjQuery中

這是jQuery的,因爲後我得到的價值,我必須編輯HTML標籤內容。

我檢索哈希值與:

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

我有2個變量:

var genre; 
var song; 

的問題是,有可能在URL兩個可能性:

  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 
    

    你能幫助我嗎?

    +2

    瓦特/'VAR份= location.hash.split( 「/」)過濾器(字符串)'。部分[0] =流派和部分[1] =歌曲(如果有的話) – dandavis

    +0

    with http:// website/list /#/ genre/song 'var parts = location.hash.split(「/」)。filter (串); console.log(「genre:」+ parts [0] +「,song:」+ parts [1]); ' 我得到 類型:#,歌曲:流派 – mytom

    +1

    哎呀,使那'parts = location.hash.slice(1).split ...' – dandavis

    回答

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