我正在使用一个 PHP 框架 Codeigniter,它使用基于段的 url,例如 http://www.mydomain.com/age/11/name/john/color/red
而不是通常的查询字符串lijke http://www.mydomain.com/index.php?age=11&name=john&color=red
。
如何使用 Javascript/jQuery 从 url 中获取 age
键的值?
获取值 11
后,我将在触发事件时将其传递给 jQuery 对象。
$( "#searchdistance_slider" ).slider({
range: "min",
value: 5,
min: 0.5,
max: 10,
slide: function( event, ui ) {
$( "#search_distance" ).val(ui.value + " miles");
window.location.replace("http://www.domain.com/" + age);
/* passing the value of age into URL to redirect to */
}
});
更新
- 键/值对可以改变位置,URL中键/值对的数量不固定
- 我需要在 Javascript 中获取值,因为用户使用 slider 更改特定值,比如
age
,以及新值20
slider 将用于将用户重定向到http://www.mydomain.com/age/20/name/john/color/red
最佳答案
您可以尝试使用 jQuery URL parser插件。
使用 .segment(n)
调用搜索 "age"
的 URL 路径,并获取下一个应该包含您要查找的年龄值的值为。
如果 age
始终处于同一位置,则尝试使用 .fsegment(n)
方法。
或者将 .segment()
与类似的东西一起使用:
var parts = $.url(your_url).segment();
var params = [];
for (var i=0; i<parts.length/2; i++) {
params[parts[2*i]] = parts[2*i+1];
}
var age = parseInt(params['age']);
(我确信有更漂亮的方法可以做到这一点。)
如果您只想要age
部分,则不必将所有这些都塞进字典。找到所需的 key 后,尽早退出循环即可。
如果你想重建年龄改变的路径,试试这样的:
var parts = $.url(your_url).segment();
var newpath = '';
for (var i=0; i<parts.length/2; i++) {
if (parts[2*i] == 'age') {
newpath += '/age/' + (parseInt(parts[2*i+1]) + 42); // put your age modifiy
// code here
} else {
newpath += '/' + parts[2*i] + '/' + parts[2*i+1];
}
}
alert(newpath);
关于php - 使用 Javascript/jQuery 获取基于段的 URL 中的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485310/