Teraz jestem nowy w programowaniu stron internetowych, w szczególności javascript. Próbuję napisać skrypt, który zaktualizuje obraz na stronie internetowej i jej tekst, gdy użytkownik kliknie obraz. Oto kod:Tekst staje się niezdefiniowany podczas przechodzenia przez macierz.
//Images array
imgs = Array("test1.jpg", "test2.jpg", "test3.jpg");
//Names array
names = Array("Test1", "Test2", "Test3");
//Holds how many times our page has been clicked
var click = 0;
//Another click var
var click2 = 0;
//change function
function change()
{
//Get the ID of 'nam', and start incrementing the elements in our array
document.getElementById("nam").innerHTML = names[++click2];
//Get an element with the ID 'first', and start incrementing the elements in our array
document.getElementById("first").src = imgs[++click];
//If the user clicks to the end of the gallery
if(click==2)
{
click = -1;
}
if(click2==2)
{
click = -1;
}
}
Prawdopodobnie nie jest to najlepszy sposób, ale kod ten będzie działać na początku. Jednak po kliknięciu trzeciego obrazu, aby powrócić do pierwszego, zdjęcia działają poprawnie, ale tekst staje się "niezdefiniowany". Szukałem, ale nie mogę znaleźć niczego naprawdę "złego" w tym kodzie.
Każda pomoc jest doceniana.
Utwórz tablicę za pomocą '[..]'. Nie z 'Tablicą (..)'. Powinien to być 'nowy Array (..)' w twoim przykładzie. – 0x499602D2
Widząc, że jesteś nowicjuszem dla Js: zwróć uwagę, że niewłaściwe jest używanie konstruktorów 'Array' i' Object' jawnie. Jest jeszcze gorzej, gdy pominiesz słowo kluczowe "new". Więc użyj albo (_bad_) 'new Array();' albo ogólnie używanej (i zaakceptowanej jako lepszej alternatywy) 'var myArray = []; var myObject = {}; ' –