jquery,如何在javascript中获取URL GET变量?

时间:2011-11-30 21:00:18

标签: javascript jquery json get

我有一个链接:

<a href="?
processor=<?php echo $value['processor']; ?>&
auth_code=<?php echo $value['auth_code']; ?>
" id="buttonDetails">View Detail</a>

和一个功能:

function getUrlVars(parsedUrl) {
var vars = {};
parsedUrl.replace(/[?&]+([^=&]+)=([^&]*)/gi,
        function(m, key, value) {
            vars[key] = value;
        });
return vars;
}

我正在做的是将链接传递给此函数;

var url = $('#buttonDetails').attr('href'); // "?processor=25&auth_code=12"
var first = getUrlVars(url);
alert (first );

此提醒会给我[object Object]

任何想法我做错了什么?

编辑: 另一种方式是:

var first = getUrlVars()["processor"];
alert(processor);

但这不起作用

编辑:

链接是在php循环中创建的:

foreach($test as Value){
 // here is the link being created and the result is more links.
}

我也将链接的id更改为class

我在做:

$('.buttonDetails').each(function(){
var parsed = getUrlVars($(this).attr('href'));
console.log(parsed['processor']);

});

这会给我undefined

这个console.log(parsed);将为我提供包含其中数据的多个对象。但当我尝试从对象内部获取一些细节时,我得到undefined

为什么这不起作用?

再次感谢

3 个答案:

答案 0 :(得分:3)

在这个例子中:

var url = $('#buttonDetails').attr('href'); // "?processor=25&auth_code=12"
var first = getUrlVars(url);
alert (first );

警报为您提供[object Object]的原因是因为first是:

Object
    auth_code: "12"
    processor: "25"

您的第二个示例不起作用,因为您没有将值传递给getUrlVars函数。试试这个:

var url = $('#buttonDetails').attr('href'), // "?processor=25&auth_code=12"
    parsed = getUrlVars(url);

alert(parsed['processor']);

答案 1 :(得分:0)

jQuery没有内置函数。我用这个:http://www.netlobo.com/url_query_string_javascript.html

答案 2 :(得分:0)

可能的解决方案:

var first = getUrlVars(url)["processor"];
alert(first); // not alert(processor)

var first = getUrlVars(url);
alert (first.processor); // or alert(first["processor"]