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

时间:2017-08-16 10:42:11

标签: javascript jquery asp.net-ajax

我有这个网址:

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

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

var word_id = 1034374;
var lang_kod = en;

2 个答案:

答案 0 :(得分:0)

以下是您需要的代码:

var link = window.location;

var data = link.split("#");

var word_id = data[1].split("=")[1];
var lang_code = data[2].split("=")[1];

使用window.location,您会获得当前的网址(另一种选择是document.location

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

您现在要做的是将索引1处的字符串除以等号(lang_code=en)。这也是一个字符串数组,其索引为data[1].split("="),索引为1 word_id,这是您所需要的(1034374)。

遵循相同的逻辑,您还可以获得data[1].split("=")[1]变量。

在此测试:



lang_code




希望这有用:)

答案 1 :(得分:0)

你应该只有一个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];

使用JSFiddle:https://jsfiddle.net/o0nwyvfz/

注意:

如果您要使用多个网址片段,我建议您使用网址参数,例如: 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是, http://test.words.aspx?word_id=1034374&lang_code=en

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