我知道這個問題之前已經被問過了,但是到目前爲止我發佈的所有解決方案都遇到了問題。我有一個像這樣的網址:使用jQuery/Javascript訪問GET變量
http://localhost:3000/virgil/1/render_lesson?toggle=view
這是一個Rails通過AJAX調用,但這應該不重要。每次我嘗試一個應該得到「切換」變量的函數時,我將其打印到控制檯日誌中時會得到「未定義」。我曾嘗試這個功能
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進行調用。
<%= link_to 'View Lessons', render_lesson_virgil_path(course, :toggle => :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<%= @course.id %>").append('<div id="Lesson<%= @course.id %>" class="render_lesson"></div>');
$("#Lesson<%= @course.id %>").html("<%= escape_javascript(render(:partial => "lesson")).html_safe %>");
可能重複[如何獲得與jQuery GET和POST變量?](http://stackoverflow.com/questions/439463/how-to-get-get - 和後變量與jQuery) – Bozho 2012-04-03 21:34:06
和http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery – Bozho 2012-04-03 21:34:22
我改變你的函數接受一個URL字符串,而不是從窗口抓取它。位置。我把你的URL作爲一個字符串推入,它對我有用;我得到了一個具有「切換」鍵和「查看」值的數組。 – SuperJumbo 2012-04-03 22:14:12