Ich weiß, dass diese Frage zuvor gestellt wurde, aber ich hatte Probleme mit allen bisher geposteten Lösungen. Ich habe eine URL, die wie folgt aussieht:Zugriff GET Variablen mit jQuery/Javascript
http://localhost:3000/virgil/1/render_lesson?toggle=view
Es ist ein Rails durch AJAX nennen, aber das sollte keine Rolle spielen. Jedes Mal, wenn ich eine Funktion ausprobiere, die die Variable für "toggle" bekommen soll, bekomme ich "undefined", wenn ich sie in das Konsolenprotokoll drucke. Ich habe diese Funktion versucht
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;
}
Und wenn ich console.log(getUrlVars());
nenne ich bekommen ["http://localhost:3000/"]
Aber wenn ich console.log(getUrlVars()["toggle"]);
rufen ich einfach undefined
ich jede Hilfe dankbar!
EDIT:
Hinzufügen der relevanten Teile meines Codes. Dies ist eine Rails-Anwendung, die den Anruf mit AJAX durchführt.
<%= link_to 'View Lessons', render_lesson_virgil_path(course, :toggle => :view), :remote => true, :class => 'toggle_lesson', :id => "toggle_lesson#{course.id}" %>
Und dann in der JavaScript-Datei, die es nennt:
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 %>");
möglich Duplikat [wie mit JQuery GET und POST-Variablen zu bekommen?] (Http://stackoverflow.com/questions/439463/how-to-get-get -and-post-variables-with-jquery) – Bozho
und http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery – Bozho
Ich habe Ihre Funktion so geändert, dass sie eine URL-Zeichenfolge akzeptiert, anstatt sie aus dem Fenster zu ziehen .Lage. Ich habe deine URL als String eingegeben und es hat für mich funktioniert. Ich habe ein Array mit einem "Toggle" -Taster und einem "View" -Wert bekommen. – SuperJumbo