代码之家  ›  专栏  ›  技术社区  ›  Mohamed Al-ashraf Khalid Alfee

我需要使用jquery从(#)之后的url获取值

  •  -1
  • Mohamed Al-ashraf Khalid Alfee  · 技术社区  · 8 年前

    http://test.words.aspx#word_id=1034374#lang_code=en
    

    我需要得到word_id和语言代码的值,并将它们分配给变量。

    var word_id = 1034374;
    var lang_kod = en;
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   Thanasis1101    8 年前

    以下是您需要的代码:

    var link = window.location;
    
    var data = link.split("#");
    
    var word_id = data[1].split("=")[1];
    var lang_code = data[2].split("=")[1];
    

    具有 window.location 您将获得当前的url(另一种选择是 document.location

    然后用散列符号将其拆分( link.split("#") )结果存储为字符串数组( data )现在包含 http://test.words.aspx 在索引0处, word_id=1034374 lang_code=en 在指数2处;

    data[1].split("=") ). 这也是一个字符串数组,具有 word_id 1034374 data[1].split("=")[1] ).

    按照相同的逻辑,您还可以得到 lang_code

    在此处测试:

    var link = "http://test.words.aspx#word_id=1034374#lang_code=en"
    
    var data = link.split("#");
    
    var word_id = data[1].split("=")[1];
    var lang_code = data[2].split("=")[1];
    
    console.log("Word ID = " + word_id);
    console.log("Lang Code = " + lang_code);

        2
  •  0
  •   r3dst0rm    8 年前

    你真的应该只有一个URL片段。但在你的情况下,你可以做以下事情来实现这一点。

    var url = "http://test.words.aspx#word_id=1034374#lang_code=en"; // or use window.location;
    var url_splitted = url.split('#');
    
    alert((url_splitted[1]).split('=')[1]); // showing you the values
    alert((url_splitted[2]).split('=')[1]); // showing you the values
    
    var work_id = (url_splitted[1]).split('=')[1];
    var lang_code = (url_splitted[2]).split('=')[1];
    

    https://jsfiddle.net/o0nwyvfz/

    注:

    如果您要使用多个URL片段,我建议您使用URL参数,例如: http://test.words.aspx?word_id=1034374&lang_code=en

    解决方案由: http://www.jquerybyexample.net/2012/06/get-url-parameters-using-jquery.html

    var getUrlParameter = function getUrlParameter(sParam) {
        var sPageURL = decodeURIComponent(window.location.search.substring(1)),
            sURLVariables = sPageURL.split('&'),
            sParameterName,
            i;
    
        for (i = 0; i < sURLVariables.length; i++) {
            sParameterName = sURLVariables[i].split('=');
    
            if (sParameterName[0] === sParam) {
                return sParameterName[1] === undefined ? true : sParameterName[1];
            }
        }
    };
    

    假设URL为,

    var tech = getUrlParameter('word_id');
    var blog = getUrlParameter('lang_code');