【问题标题】:jQuery get information from urljQuery从url获取信息
【发布时间】:2012-07-18 09:09:09
【问题描述】:
我正在寻找类似于 PHP 的 $_GET 的 jQuery 代码。在http://example.com/index.php?page=pics&action=show 这样的链接中,我想获取“页面”和“操作”值。在 PHP 中它很容易完成,但我在 jQuery 中需要它。我尝试使用$(location).attr('href'); 获取整个网址,但后来我不得不对其进行过滤,我很确定有一种更简单的方法。
感谢您的建议。
【问题讨论】:
标签:
jquery
html
url
jquery-selectors
get
【解决方案1】:
列出了很多方法来做到这一点here。
我推荐JQuery URL Parser。
只需将 URL 解析器脚本添加到您的页面并按以下方式使用它
$.url('http://xyz.com?param1=abc¶m2=def').param('param1'); // returns 'abc'
【解决方案2】:
我已经为上述解决方案完成了完整的垃圾箱。
按照以下步骤操作:
1) 包含最新的 jquery.js 文件。
2) 包含 querystring-0.9.0.js 用于在 js 中获取查询字符串变量值。
3) HTML :
<a href="#?param1=abc¶m2=def">
abc
</a>
这里我使用了“#?param1=abc¶m2=def”,因为在 bins 上不可能重定向页面并执行我们的 java 脚本,所以我刚刚在同一页面上添加了查询字符串并进行了测试。
4) 脚本标签中的 jQuery:
$(function() {
$("a").click(function() {
setTimeout(function() {
var param1 = $.QueryString("param1");
var param2 = $.QueryString("param2");
alert(param1);
alert(param2);
}, 300);
});
});
以上脚本工作正常,如果查询字符串已添加到同一页面,但对于不同的页面导航,您必须删除 setTimeout 函数,但保留脚本在其中并执行如下语句使用查询字符串导航的页面。因此,不同的导航需要首先包含 jquery 和 querystring-0.9.0.js 这两个 java 脚本文件。
$(function() {
var param1 = $.QueryString("param1");
var param2 = $.QueryString("param2");
alert(param1);
alert(param2);
});
你可以试试http://codebins.com/bin/4ldqpac