2011-11-30 109 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"] 
相關問題