3

我想使用 JQuery 从 href 属性字符串中提取值

$(this).attr("href")

会给我

?sortdir=ASC&sort=Vendor_Name

我需要的是这些值被解析成一个数组

myArray['sort']

myArray['sortdir']

有任何想法吗?谢谢!

顺便说一句,我在 SO 的其他地方看到以下类似的想法与查询字符串一起使用。我还不能根据我的需要调整它。

var urlParams = {};
    (function () {
        var match,
    pl = /\+/g,  // Regex for replacing addition symbol with a space
    search = /([^&=]+)=?([^&]*)/g,
    decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
    query = window.location.search.substring(1);

        while (match = search.exec(query))
            urlParams[decode(match[1])] = decode(match[2]);
    })();
4

4 回答 4

1

尝试以下操作:

var href = $(this).attr("href")
href = href.replace('?', "").split('&');

var myArr = {};
$.each(href, function(i, v){
   var s = v.split('=');
   myArr[s[0]] = s[1];    
});

演示

于 2012-07-27T15:06:24.237 回答
0

你可以从这里使用 jQuery BBQ 的 deparam 函数:

http://benalman.com/code/projects/jquery-bbq/examples/deparam/

于 2012-07-27T15:05:20.503 回答
0

尝试这个

function getURLParameter(name, string) {
    return decodeURI(
        (RegExp(name + '=' + '(.+?)(&|$)').exec(string)||[,null])[1]
    );
}

var string = $(this).attr("href");

alert(getURLParameter("sort",string));

演示在这里http://jsfiddle.net/jbHa6/ 您可以更改 var 字符串值并玩弄。

编辑

删除了第二个示例,因为该代码不是那么好并且没有达到目的。

于 2012-07-27T15:07:13.150 回答
0

也许有更好的解决方案,但要快我应该做这样的事情

var url = $(this).attr("href");
url = url.replace("?sortdir=", "");
url = url.replace("sort=", "");
myArray['sort'] = url.split("&")[1]; // Or use a temporary tab for your split
myArray['sortdir'] = url.split("&")[0];

该解决方案取决于您的网址是否仍然像 ?sortdir=ASC&sort=Vendor_Name

于 2012-07-27T15:03:59.190 回答