使用jQuery / Javascript访问GET变量
我知道之前已经问过这个问题,但到目前为止我发布的所有解决方案都遇到了问题。 我有一个看起来像这样的url:
http://localhost:3000/virgil/1/render_lesson?toggle=view
这是通过AJAX调用Rails,但这无关紧要。 每当我尝试一个应该为“切换”获取变量的函数时,当我将其打印到控制台日志时,我得到“未定义”。 我试过这个function
function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }
当我调用console.log(getUrlVars());
我得到["http://localhost:3000/"]
但是当我调用console.log(getUrlVars()["toggle"]);
我只是undefined
我感谢任何帮助!
编辑:
添加我的代码的相关部分。 这是一个Rails应用程序,它使用AJAX进行调用。
:view), :remote => true, :class => 'toggle_lesson', :id => "toggle_lesson#{course.id}" %>
然后在它调用的javascript文件中:
function $_GET( name ){ 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 results[1]; } console.log($_GET('toggle')); //This is where it prints the incorrect value to the log, regardless of the function I use. $("#Course").append('<div id="Lesson" class="render_lesson">