【问题标题】:jquery, how to get URL GET variables in javascript?jquery,如何在 javascript 中获取 URL GET 变量?
【发布时间】:2011-11-30 21:00:18
【问题描述】:

我有一个链接:

<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

为什么这不起作用?

再次感谢

【问题讨论】:

  • alert(getUrlVars(url)["processor"])?
  • 这里没有错误。 first 是一个对象,因为您返回一个对象:var vars = {}。提醒对象提醒[object Object]
  • 我的函数需要一个 var 传递给它
  • 你确定这是把 url 放到元素中吗?

标签: javascript jquery json get


【解决方案1】:

在这个例子中:

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

【讨论】:

  • @Patrioticcow,您确定您没有在 url 或 parsed['processor'] 部分中输入错误的“处理器”吗?因为这对我来说非常有效。 jsFiddle demo
  • 这里运行良好。你在某个地方出了点问题..你能提供一个包含完整代码的pastebin链接吗?我会尽力帮忙的。
  • 另外,我只想说明他得到[object Object] 的原因是因为对象的toString 函数(Object.prototype.toString 因为它没有被覆盖)总是返回"[object Object]"。我发现这在某些情况下很有用。
  • 有线,它在我的电脑上不起作用......但我看到它在 jsfiddle 中工作
  • 把你的代码放在 jsfiddle.net 或 jsbin.com 上并链接,也可以试试我的解决方案 :)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    可能的解决方案:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多