【问题标题】:jquery get var from urijquery从uri获取var
【发布时间】:2011-03-21 16:30:26
【问题描述】:

我有两个页面 page1.php 和 page2.php,在 page1.php 上,我点击一个 href 和指向 page2.php 某处的链接...

在 page2.php 中有 4 个扩展器,在页面加载时隐藏或关闭...

问题:我喜欢从第 1 页传递到第 2 页,我希望看到哪个扩展器打开

类似于 page1 href="page2.php?open=1"

在 page2.php 上检索打开的 var 的 jquery,并且在页面加载后仅展开那个...

我有研究谷歌并附带:https://github.com/allmarkedup/jQuery-URL-Parser

没有插件可以做到吗?

【问题讨论】:

  • 我从来没有使用过 php,但是你能不能在你的服务器页面上获取 uri 组件(int open = request.params["open"]),然后在客户端中链接它带有标签 的页面
  • 我已经在 php $_GET['var'] 中完成了它并将其注入到 java... 工作得很好

标签: jquery url variables uri


【解决方案1】:

具体答案:

var expanderNo = (location.search.match(/open=(\d+)/) || [])[1]

但如果您在这里的意图是链接到页面的特定部分,那么URL fragment 更合适。给定 URL /page2.php#expander1,您可以使用 location.hash.substr(1) 检索 expander1 部分。

【讨论】:

    【解决方案2】:

    这是一种通用的方法,可能不是最好的,但我手头有代码,所以想分享一下。

        function getVars(){
            var vars = new Array();
            var query = window.location.search.substring(1);
            var parms = query.split('&');
            for (var i = 0; i < parms.length; i++) {
                    var pos = parms[i].indexOf('=');
                    if (pos > 0) {
                            var key = parms[i].substring(0, pos);
                            var val = parms[i].substring(pos + 1);
                            vars[key] = val;
                    }else{
                            return Array();
                    }
            }
            return vars;
       }
    

    它将为每个参数返回一个键值对。

    如果您事先知道参数,另一个答案(Alexey 的)会更好。

    【讨论】:

    • parms.length 中的拼写错误,如果给出字符串 'foo=1&bar&baz=2',该函数将过早返回。您可以简单地返回一个空数组,而不是“未找到变量”。
    • 已编辑。你是对的。就我而言,它适用于所有适用的条件,即&amp;bar 是不可能的情况。
    猜你喜欢
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2010-12-10
    相关资源
    最近更新 更多