Pisze skrypt, jednocześnie ucząc się javascriptu i mam taką zagwozdkę, która mnie nurtuje. Otóż, chce osiągnąć aby skrypt odnalazł obiekt <img> i przypisał mu określone zadanie po kliknięciu na nie. Efekt ten uzyskałem takim sposobem:
function logo() { var adres= String(window.location); var sprawdz= adres.substring(adres.lastIndexOf("/")+1); if (sprawdz !="index.php") { for ( x=0; x< document.images.length; x++) { if (document.images[x].parentNode.id == "naglowek") { var logo= document.images[x]; logo.onclick= function() { alert("dziala");} } } }}
Oczywiście po kliknięciu na plik (o ile adres nie konczy sie na index.php [efekt celowy]) wyświetla się alert. Jednak wcześniej chciałem ten sam efekt uzyskać poniższym skryptem:
function logo() { var adres= String(window.location); var sprawdz= adres.substring(adres.lastIndexOf("/")+1); if (sprawdz !="index.php") { var logo= document.getElementById("naglowek").childNodes[0]; logo.onclick= function() { alert("działa");} } } }}
Jednak ta wersja nie działa. Dostaję się do obiektu <img> innym sposobem z wykorzystaniem getElementById("naglowek").childNodes[0], gdzie nazwa identyfikatora diva zawierającego ten obrazek to "naglowek", a sam obrazek jest jedynym elementem tego diva. Dlaczego ten skrypt nie działa?
Dobra, działa. Js ma swoje głupie zasady i tablice childNodes zaczyna od 1 :/. Zatem:
Kod
var logo= document.getElementById("naglowek").childNodes[1];