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

おそらくもっと良い解決策はありますが、迅速にするには、そのようなことをする必要があります

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_Nameのようであるかどうかによって異なります。

于 2012-07-27T15:03:59.190 に答える
0

ここからjQueryBBQの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 文字列の値を変更して遊ぶことができます。

編集

2番目の例を削除しました。これは、そのコードがそれほど適切ではなく、目的を果たさないためです。

于 2012-07-27T15:07:13.150 に答える