Autor Zpráva
soucekgns
Profil
Dobrý den,
mohu se zeptat, jak přidělit javascriptem položkám v seznamu proměnou (x) a číslo (1, 2...)?
např.:
img1.jpg, img2.jpg, img3.jpg
->
x1 = img1.jpg
x2 = img2.jpg
x3 = img3.jpg

Děkuji za rady
Str4wberry
Profil
Projít si cyklem všechny položky seznamu a do atributu „x“ nastavit příslušné číslo.

Nicméně zkus položit dotaz konkrétně. Co je cílem udělat?
soucekgns
Profil
Pokouším se udělat něco takového, ale nevím, kde je chyba... nechce mi to vypsat "dalsiobrazek"
<script type="text/javascript">
fotky = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg", "foto7.jpg");
for(i=0;i<fotky.length;i++){
    if (document.getElementById('image').src==fotky[i]){
    dalsiobrazek = fotky[i+1];
    }
}
document.write(dalsiobrazek);
</script>
<img src="foto2.jpg" width="120" id="image">
Str4wberry
Profil
Chyb je tam několik.

1) Jelikož je obrázek až pod kódem, getElementById('image') ho nechytí.
2) Kdybys používal var, vypsalo by se ti roztomilé undefined, takže bys hned viděl, že se podmínka nesplní.
3) Zkus si vypsat, co je v document.getElementById('image').src. :–)
soucekgns
Profil
Str4wberry:
Zkus si vypsat, co je v document.getElementById('image').src. :–)
...já zapomněl: file:///F:/aktenis/foto2.jpg
Jak tedy můžu rozumě získat foto2.jpg

Díky
soucekgns
Profil
Ještě mám prosbu... zde mi to nějak nesedí, vždy když kliknu na next, tak se document.getElementById('image').src=undefined
<img src="foto2.jpg" width="120" id="image">     

<script type="text/javascript">
function aaa() {
fotky = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg", "foto7.jpg");
for(i=0;i<fotky.length;i++){
    if (document.getElementById('image').src=='file:///F:/aktenis/'+fotky[i]){
    var dalsiobrazek = fotky[i+1];
    document.getElementById('image').src=dalsiobrazek;
    }
}
} 
</script>
<a onclick="javascript: aaa();">Next</a> 
Str4wberry
Profil
Protože při posledním průchodu cyklem se dostaneš na neexistující index. Jak to opravit? Zamyslet se, co ten kód vlastně dělá. Problém je v tom, že 9. řádkem nastavíš nové src obrázku, takže se zase splní podmínka z řádku sedmého a tak pořád dokola, až se v posledním průchodu cyklem dostaneš na nedefinovanou položku pole.

Mimochodem, je ještě třeba vyřešit situaci pro poslední obrázek.
soucekgns
Profil
Super, díky vyřešeno oboje
Akorát prosím, jak "vyříznu" foto2.jpg z file:///F:/aktenis/foto2.jpg javascriptem, Díky

<img src="foto1.jpg" width="120" id="image">     

<script type="text/javascript">
function aaa() {
fotky = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg", "foto7.jpg");
for(i=0;i<fotky.length;i++){
    if (document.getElementById('image').src=='file:///F:/aktenis/'+fotky[i]){
      if (i+1==fotky.length){
      var dalsiobrazek = fotky[0];
      document.getElementById('image').src=dalsiobrazek;
      break;
      }
      else {
      var dalsiobrazek = fotky[i+1];
      document.getElementById('image').src=dalsiobrazek;
      break;
      }
    }
}
} 
function bbb() {
fotky = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg", "foto7.jpg");
for(i=0;i<fotky.length;i++){
    if (document.getElementById('image').src=='file:///F:/aktenis/'+fotky[i]){
      if (i==0){
      var predchoziobrazek = fotky[fotky.length-1];
      document.getElementById('image').src=predchoziobrazek;
      break;
      }
      else {
      var predchoziobrazek = fotky[i-1];
      document.getElementById('image').src=predchoziobrazek;
      break;
      }
    }
}
} 
</script>
<a onclick="javascript:bbb();">Prew</a>
<a onclick="javascript:aaa();">Next</a>
Str4wberry
Profil
To by mohlo jít třeba regulárním výrazem:
document.getElementById('image').src.replace(/.*\/(.*)/, "$1")

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0