2016-09-18 5 views
1

Wie hiacke ich ein Link-Tag und eine Variable mit ID eines Link-Tags zuweisen, bevor Sie auf die URL gehen?Wie man JavaScript-Variable mit ID eines Link-Tags zuweisen, bevor Sie auf den Link gehen

MEIN HTML-Code

<div id="course" class="row"> 
    <div class="col-md-6"><a href="read.html" id="m1">Course 1</a></div> 
    <div class="col-md-6"><a href="read.html" id="m2">Course 2</a></div> 
<div> 

MY JavaScript-Code

document.getElementById("course").addEventListener("click", courseInfo); 

function courseInfo(){ 

    var selectedCourse = the id of the course selected; 

    //assign to localstorage 
    localStorage.setItem("courseid", selectedCourse); 
    //go to courseinfo.html 
    window.location.href = 'courseinfo.html'; 

} 

Ich versuche, die Id des Kurses und die Menge an den lokalen Speicher zu erhalten, so dass, wenn die courseinfo.html wird geladen, wenn Ajax angefordert wird und das Kurs-JSON-Format analysiert wird, um die Seite zu füllen.

Bitte helfen

+2

Das ist nicht wie Sie es versuchen sollten. Ändern Sie stattdessen die URL im 'href' -Attribut, um einen Parameter wie' read.html? Id = m1' einzufügen. – trincot

+0

wie 'coursetinfo.html? Courseid = 1' hinzuzufügen, ist das in html möglich? wenn ja, wie verarbeite ich diese 'courseinfo.html? courseid = 1' mit Javascript? –

+0

Ich würde das Ereignis 'onClick' verwenden, um eine Funktion aufzurufen, die zwei Aufgaben ausführt: Weisen Sie den Link einer Variablen zu, GOTO, wie. Beachten Sie jedoch, dass das Wechseln zu einer anderen Seite zu einer vollständigen Kontextaktualisierung führen würde und daher Ihre Variable gelöscht wird. – FDavidov

Antwort

1

Sie nicht localStorage dafür verwenden sollte, sondern nur die Informationen über ein Argument URL übergeben:

Auf der ersten Seite, legte den Kurs Code in der href URL, wie folgt aus:

<div id="course" class="row"> 
    <div class="col-md-6"><a href="courseinfo.html?courseid=1" id="m1">Course 1</a></div> 
    <div class="col-md-6"><a href="courseinfo.html?courseid=2" id="m2">Course 2</a></div> 
<div> 

Kein JavaScript wird benötigt, damit das funktioniert.

dann auf der Empfangsseite, erfassen die Kurs-ID wie folgt:

var courseid = location.search.match(/[&?]courseid=(.*?)(&|$)/); 
if (courseid) courseid = courseid[1]; // get captured group 

// this would output "1" if the URL argument was `courseid=1` 
console.log(courseid); 
0

Als @trincot vorgeschlagen, dass Sie dies auf der Empfängerseite tun.

Wenn aber Sie müssen die ID des angeklickten Link zu erfassen, wenn es angeklickt wird, müssen Sie sich den Event-Handler auf die Links hinzuzufügen, und verwenden Sie dann das Ereignis empfangen die Daten zu handhaben, wie so

var x; 
var links = document.getElementsByTagName("A"); 

for(x in links) { 
    if (links[x] instanceof Element) { 
     links[x].addEventListener('click',doX, false); 
    } 
} 

function doX(e) { 
    alert(e.currentTarget.id); 
} 

Bitte beachten Sie, dass auf schnellen Browser kann der Browser nicht vollständig beenden doX läuft, bevor die Seite aktualisiert wird und der Kontext verschwindet, so dass dies nicht eine sehr sichere Methode, Dinge zu tun, wenn Sie die Standardaktion verhindern mit e.preventDefault und Handle den Link selbst.

Verwandte Themen