如何在jquery ready函数中获取URL参数?

我有以下内容:

$(document).ready(function() { window.location.href='http://target.SchoolID/set?text='; }); 

因此,如果有人使用以下url访问包含上述代码的页面:

Somepage.php?ID = ABC123

我希望ready函数中的text变量为:abc123

有任何想法吗?

你不需要jQuery。 你可以用普通的JS做到这一点

 function getParameterByName( name ) //courtesy Artem { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); } 

然后你可以像这样得到querystring值:

alert(getParameterByName('text'));

还可以在这里查看其他方法和插件: 如何在JavaScript中获取查询字符串值?

看看这个问题的答案: 如何在JavaScript中获取查询字符串值?

这将从查询字符串中提供id参数的值。

然后你可以做一些像:

 $(document).ready(function() { var theId = getParameterByName( id) var newPath = 'http://target.SchoolID/set?text=' + theId window.location.href=newPath; }); 

为了帮助那些想要拥有多个变量并且在这里增强Moin答案的人,我需要多个变量的代码:

 function getParameterByName( name ) //courtesy Artem { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else { if ((results[1].indexOf('?'))>0) return decodeURIComponent(results[1].substring(0,results[1].indexOf('?')).replace(/\+/g, " ")); else return decodeURIComponent(results[1].replace(/\+/g, " ")); } }