2017-02-26 61 views
0

我試圖添加一些自定義內容到頁面,如果我選擇通過url添加1或2個變量。問題是我的函數只能在兩個字符串都被傳遞的情況下工作,而不是如果我只選擇使用1.我想要這個選項。 2串傳遞是「rescompany」和「區域」的問題在jQuery中通過URL傳遞1或2個查詢字符串

重:index.html?locale=someplace&rescompany=Google

$(document).ready(function() { 
     function getUrlVars() { 
     var vars = [], 
      hash; 
     var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
     for (var i = 0; i < hashes.length; i++) { 
      hash = hashes[i].split('='); 
      vars.push(hash[0]); 
      vars[hash[0]] = hash[1]; 
     } 
     return vars; 
     } 

     if (document.location.search.length) { 
     var rescompany = getUrlVars()["rescompany"]; 
     var locale = getUrlVars()["locale"]; 

     if ((rescompany).length > 0) { 
      $(".addtores").css('visibility', 'visible'); 
      $(".resname").append(decodeURIComponent(rescompany)); 
     } 
     if ((locale).length > 0) { 
      $(".introduction strong span").css('display', 'inline-block'); 
     } 
     } 

回答

0

如果我運行代碼,我收到以下錯誤信息:TypeError: rescompany is undefined(查看錯誤信息在您的瀏覽器)

這意味着如果測試(rescompany).length > 0是錯誤的。這應該被替換爲rescompany !== undefined

所以,你的代碼應該成爲這樣的事情:

$(document).ready(function() { 
    function getUrlVars() { 
    var vars = [], 
     hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for (var i = 0; i < hashes.length; i++) { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
    } 

    if (document.location.search.length) { 
    var vars = getUrlVars(); 
    var rescompany = vars["rescompany"]; 
    var locale = vars["locale"]; 

    if (rescompany !== undefined) { 
     $(".addtores").css('visibility', 'visible'); 
     $(".resname").append(decodeURIComponent(rescompany)); 
    } 
    if (locale !== undefined) { 
     $(".introduction strong span").css('display', 'inline-block'); 
    } 
    } 
}); 
+0

你釘它 - 我錯過了邏輯的一部分。謝謝你的澄清! – darnen

+0

如果解決了您的問題,請始終標記答案爲正確。所以,大家都知道問題解決了。 – m7913d

相關問題