2011-11-30 104 views
0

我有一个链接:jquery,如何获取URL GET变量在javascript中?

<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

为什么这不起作用?

再次感谢

+0

'警报(getUrlVars(URL) “处理器”])'? –

+0

这里没有错误。 'first'是一个对象,因为你返回一个:'var vars = {}'。提醒对象警告'[object Object]' –

+0

我的函数需要一个var传递给它 – Patrioticcow

回答

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']); 
+0

我得到'undefined' ... – Patrioticcow

+0

@Patrioticcow,你确定你没有输入url或者parsed ['processor']'部分的'processor'吗?因为这对我来说非常合适。 [jsFiddle演示](http://jsfiddle.net/PYQe2/) –

+0

它在这里工作很好。你在某个地方出了问题..你能提供一个包含完整代码的pastebin链接吗?我会尽力帮忙。 – simshaun

0

可能的解决方案:

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

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