如何将查询字符串中传递的变量访问到 jQuery 的 document.ready 函数中?

How to access variable passed in a query string into document.ready function of jQuery?

我正在加载一个包含 URL 的页面,如下所示:

http://localhost/CKWEB_28-12-2015/event_index.php?event_id=510

我尝试使用以下代码来访问变量 event_id 的值,如下所示:

$(document).ready(function() {

  var query_event_id = $.url().param('event_id');
  alert(query_event_id);
});

但是没有成功。有人可以帮我访问查询字符串中传递的值吗?

谢谢。

您需要一个函数来从查询字符串中获取适当的信息。

这个帖子里有个好帖:How can I get query string values in JavaScript?

将其应用于您的情况,您可以执行以下操作:

function getParameterByName(name) {
  name = name.replace(/[\[]/, "\[").replace(/[\]]/, "\]");
  var regex = new RegExp("[\?&]" + name + "=([^&#]*)"),
      results = regex.exec(location.search);
  return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var query_event_id = getParameterByName('event_id');
if(query_event_id){
  alert(query_event_id);
}

通过检查 query_event_id 值是否为真值,您可以避免在查询字符串不存在时采取任何操作。

此外,如果您将 JavaScript 包含在页面底部,在结束 </body> 标记之前,您可以避免调用 $(document).ready(...);