2013-07-27 13 views
5

Mam ten kod javascript:Korzystanie zmienną javascript na html <a>

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

chcę użyć zmiennej pathArray jako część mojego href w tagu

To jest mój kod html

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

ale wydaje się, że nie odczytuje wartości, jeśli zmienna, ale jej nazwa zamiast tego.

+0

Niestety, nie można po prostu zrzucić nazwy zmiennej JavaScript w dowolnym miejscu znaczników HTML i oczekiwać, że zadziała. –

+0

Czy zmienna pathArray nie będzie zmienną globalną, ponieważ znajduje się w pliku HTML? –

+1

HTML i JavaScript to dwie różne rzeczy ... HTML nie ma _ zmiennych. Z pewnością nie ma kodu Javascript. HTML nie ma również operatora '+' dla argumentów. Jest to język znaczników, a nie język programowania. –

Odpowiedz

1

Nie można umieścić zmiennej javascript w dowolnym miejscu w html. Zamiast tego musisz pobrać element dom przez skrypt i dołączyć atrybut href. podaj swojej kotwicy id lub nazwę klasy i spróbuj tego jako przykładu.

<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

Zamiast wyrzucać kod z OP, może _explain_ rozwiązanie? –

+0

Próbowałem już, ale nadal daje mi ten błąd: Uncaught TypeError: Nie można odczytać właściwości "href" o wartości zerowej w pliku: ///android_asset/www/lose.html? Poziom1: 8 –

1

Będziesz musiał również użyć JavaScript do tego. Najpierw dać kotwicę identyfikator:

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

a następnie dodaj następującą do kodu javascript:

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

Kod doda zawartość zmiennej ciąg do href właściwość elementu zakotwiczenia .

1

Najpierw ułóż kotwicę łatwiejszą do wyboru, nadając jej identyfikator.

<a href="#" id="pathLink"></a> (to przy założeniu, że istnieje więcej niż jedna kotwica na swojej stronie)

Następnie w skrypcie powyżej obejmują:

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

Znacznik kotwica ma natywną właściwość href, więc przypisywanie nowy jest tak łatwe, jak to:

Rewrite:

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

To nie zadziała tak. Będziesz musiał przeglądać zakotwiczenia, używając JavaScript.

To nie zostało przetestowane. Zakładam, że chcesz, aby tak się stało z więcej niż jednym łącznikiem kotwicy.

HTML:

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

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

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

Mieszacie javascript do HTML.

Wierzę, że zmienna pathArray nie będzie zawierała oczekiwanych wartości.

Spróbuj to w tagu skryptu:

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

I dodać identyfikator do kotwicy:

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

javascript dostanie wszystkie parametry GET z aktualnym adresem URL, a następnie zastąpić atrybut href w elemencie o identyfikatorze gameAnchor z twoim game.html połączonym z parametrami GET w adresie URL.

-1

Pomyśl o używaniu silnika szablonów jako nieistniejącego, wąskiego lub doT.js. możesz łatwo zastąpić identyfikator html lub część ze zmiennych danych szablonu.

+0

, dlaczego w dół moja odpowiedź? to nie ma znaczenia? – netalex

Powiązane problemy