使用jQuery获取URL参数

6
我希望使用jQuery读取URL参数并将其绑定到一个变量中。我看过很多解决方法,但都没有适用于我。

http://relaunch.headonline.de/projekte/#filter=kataloge-database

-> 我使用的是 '#' 而不是 '&' 或 '?'!

这是我的当前javascript:

function $_GET(param) {
    var vars = {};
    window.location.href.replace( location.hash, '' ).replace( 
        /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
        function( m, key, value ) { // callback
            vars[key] = value !== undefined ? value : '';
        }
    );

    if ( param ) {
        return vars[param] ? vars[param] : null;    
    }
    return vars;
}

var filter = $_GET('filter');

你期望的输出是什么?你需要将所有的keyvalue放入一个数组中吗? - Rino Raj
我的预期输出是URL参数,在这种情况下为“kataloge-database”。-> http://relaunch.headonline.de/projekte/#filter=kataloge-database - Jonas
我已经更新了我的答案。如果您需要任何更改,请告诉我。 - Rino Raj
2个回答

9
var url = window.location.href;
var arguments = url.split('#')[1].split('=');
arguments.shift();

工作示例

var url = "http://relaunch.headonline.de/projekte/#filter=kataloge-database";
var arguments = url.split('#')[1].split('=');
arguments.shift();
alert(arguments)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


var url = window.location.href;
var arguments = url.split('#').pop().split('=').pop();

示例

var url = "http://relaunch.headonline.de/projekte/#filter=kataloge-database";
var arguments = url.split('#').pop().split('=').pop();
alert(arguments)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


谢谢,Rino! :) 很好用! - Jonas
很高兴听到这个消息 :) - Rino Raj
1
var arguments = url.split('page=')[1].split('&')[0];将URL参数中的页码提取出来并赋值给arguments变量。 - strobering

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接