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

Javascript 使用JQuery从href属性字符串中提取值,javascript,jquery,Javascript,Jquery,我想使用JQuery从href属性字符串中提取值 $(this).attr("href") 会给我 ?sortdir=ASC&sort=Vendor_Name 我需要的是将这些值解析为数组 myArray['sort'] myArray['sortdir'] 有什么想法吗? 谢谢 顺便说一句,我在其他地方看到了以下类似的想法,可以用于查询字符串。 我还不能根据我的需要调整它 var urlParams = {}; (function () { var ma

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

$(this).attr("href")
会给我

?sortdir=ASC&sort=Vendor_Name
我需要的是将这些值解析为数组

myArray['sort']

myArray['sortdir']
有什么想法吗? 谢谢

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

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

也许有更好的解决办法,但为了快点,我应该这样做

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];

该解决方案取决于您的url是否仍然像?sortdir=ASC&sort=Vendor\u Name

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

尝试以下操作:

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];    
});
试试这个

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

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

alert(getURLParameter("sort",string));
在这里演示您可以更改var字符串值并播放

编辑


删除了第二个示例,因为该代码不是很好,也不起作用。

请参见此处:@Pinch您检查过小提琴了吗?这是一个对象,它不是空的。你的方法也有效,我仍然无法给你+1,直到我的代表上升。。其他人请给他+1!非常感谢,第一种方法非常有效。如果那是赞美的话。