2013-07-27 6 views
5

ich diesen JavaScript-Code haben:Verwendung von JavaScript-Variable auf html <a>

<script ="text/javascript"> 
    var newUrl=window.location.href; 
    var pathArray=""; 
    pathArray=newUrl.substr(newUrl.lastIndexOf("?")+1); 
</script> 

Ich möchte auf dem Tag der pathArray Variable als Teil meiner href verwenden

Dies ist mein HTML-Code

<a href="game.html?"+pathArray> 
    <img src="img/RestartButton.png" style="position:absolute; 
    left:80px; top:220px"> 
</a> 

aber es scheint wie es liest nicht den Wert, wenn die Variable, aber der Name stattdessen.

+0

Entschuldigung, aber Sie können nicht einfach den Namen einer Javascript-Variablen irgendwo in Ihrem HTML-Markup ausgeben und erwarten, dass es funktioniert. –

+0

Würde die pathArray-Variable nicht eine globale Variable sein, weil sie auf der HTML-Datei ist? –

+1

HTML und Javascript sind zwei verschiedene Dinge ... HTML nicht _have_ Variablen. Es hat sicherlich keine Javascript. HTML hat auch keinen '+' Operator für Argumente. Es ist eine Markup-Sprache, keine Programmiersprache. –

Antwort

1

Sie können eine JavaScript-Variable nirgends in HTML platzieren. Stattdessen müssen Sie das dom-Element durch Skript abrufen und das href-Attribut anhängen. geben Sie Ihrem Anker eine ID oder einen Klassennamen und versuchen Sie dies als ein Beispiel.

<a id="myLink" href="game.html"> 
    <img src="img/RestartButton.png" style="position:absolute;left:80px; top:220px"> 
</a> 

<script type="text/javascript">; 
    document.getElementById('myLink').href += window.location.search 
</script> 
+1

Anstatt Code auf dem OP zu verwerfen, warum nicht _explain_ die Lösung? –

+0

Ich habe das versucht, aber es gibt mir diesen Fehler: Uncaught TypeError: Kann die Eigenschaft 'href' von null bei file nicht lesen: ///android_asset/www/lose.html? Level1: 8 –

1

Sie müssen JavaScript dafür auch verwenden. Zuerst geben Sie Ihren Anker eine ID:

<a id="myLink" href="game.html?"><img src="img/RestartButton.png" style="position:absolute; left:80px; top:220px"></a>

und fügen Sie dann zu Ihrem JavaScript-Code folgende:

document.getElementById('myLink').href += pathArray;

Der Code wird den Inhalt des String-Variable hinzufügen Eigenschaft Ankerelement href .

1

Zuerst machen Sie den Anker einfacher zu wählen, indem Sie ihm einen Bezeichner geben.

<a href="#" id="pathLink"></a> (Dies wird vorausgesetzt, es gibt mehr als ein Anker auf Ihrer Seite)

Dann oben in Ihrem Skript:

var anchor = document.getElementById("pathLink"); 

Der Anker-Tag hat eine native href Eigenschaft, so dass die Zuordnung neue ist so einfach wie diese:

Rewrite:

var anchor = document.getElementById("pathLink").href += pathArray; 
1

Es wird nicht so funktionieren. Sie müssen die benötigten Anker mithilfe von JavaScript durchlaufen.

Dies wurde nicht getestet. Ich gehe davon aus, dass dies bei mehr als einem Ankerlink passieren soll.

HTML:

<a class="updatethis" href="game.html">...</a> 
<a href="not-game.html">...</a> 
<a class="udpatethis" href="game.html">...</a> 

JavaScript: var Anker = document.getElementsByTagName ('a');

for (var i = 0, a; a = anchors[i++];) { 
    if (a.className === 'updatethis') { 
     a.href += window.location.search; 
    } 
} 
8

Sie mischen Ihr Javascript in Ihr HTML.

Ich glaube, Ihre PathArray-Variable wird auch nicht enthalten, was Sie erwarten.

Versuchen Sie dies in Ihrem Skript-Tag:

var gamePath = "game.html?" + window.location.search.replace("?", ""); 
document.getElementById("gameAnchor").setAttribute("href", gamePath); 

Und eine ID zu Ihrem Anker hinzu:

<a href="#" id='gameAnchor'> 

Die Javascript alle GET Parameter von der aktuellen URL und dann ersetzen Sie das href Attribut in dem Element mit einer ID von gameAnchor mit Ihrem Spiel.html verkettet mit den GET Parametern in der URL.

-1

Stellen Sie sich vor, Sie verwenden eine Vorlagen-Engine als uncorecore, mustache oder doT.js. Sie können HTML-Bezeichner oder Teile davon einfach durch die Datenvariablen der Vorlage ersetzen.

+0

Warum meine Antwort runter? es ist nicht relevant? – netalex

Verwandte Themen