Autor Zpráva
breeta
Profil *
Zdravím, jak mám v cyklu definovat proměnou?

mám kód

<script type="text/javascript"> 
 
 var pole = ['jedna','dva','tri','ctyri'];
 
  for (var number = 0 ; number <=3 ;  number ++) {
  	
   var option+number = pole[number]; 
 }
     
</script>   



chci aby se definovala promena option0, option1 atd .. ale hlasí to missing ; before statement
Yur4Y
Profil
Jediná možnosť bude použiť
window["option"+number] = pole[number]
Aký máš dôvod, aby si toto robil? Pripadá mi vhodnejšie používať pole.
breeta
Profil *
Vytvářím option v select a mám tam třeba 15 položek tak se mi nechce dokolečka psát ten kód

    var option1 = document.createElement('option');   
    option1.setAttribute('value', 'Půjčka / úvěr');
    var txt1 = document.createTextNode("Půjčka / úvěr");   
    option1.appendChild(txt1);

 


tak jsem chtěl vytvořit pole s hodnotami pro option a dosadit jich přes for
Joker
Profil
breeta:
Javascript pokud vím nemá proměnné proměnné.
To je specialitka PHP, upřímně řečeno jsem zatím nezažil situaci, kdy by to bylo k něčemu dobré.

Co je tak špatného na poli?
Tori
Profil
breeta:
chtěl jsem vytvořit pole s hodnotami pro option a dosadit jich přes for
Pokud potřebujete jen tohle, šlo by to udělat i bez proměnných proměnných:
function pridejVolby() {
  var hodnoty = ['jedna','dva','tri','ctyri'];  
  var moznosti = ['pujcka','hypoteka','uver','jina loupez'];
// tady se vám musí shodovat počet a pořadí hodnot a textových popisů voleb
  
  var vyber = document.getElementById('idSelectu');
   
  for (var i=0; i < hodnoty.length; i++) {
    var optionX = document.createElement('option');   
    optionX.text = moznosti[i];
    optionX.value = hodnoty[i];
    vyber.appendChild(optionX);    
 }
}  


Ohledně spolehlivosti používání setAttribute() a get Attribute() viz téma Doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute
Chamurappi
Profil
Reaguji na breetu:
tak jsem chtěl vytvořit pole s hodnotami pro option
Tak vytvoř pole a nesnaž se hloupě uplácat název proměnné.

tak se mi nechce dokolečka psát ten kód
Co s tím <option>em uděláš, když ho vytvoříš? Potřebuješ si ho někde dlouhodoběji uskladnit? Jestli ne a rovnou ho zapojuješ do <select>u, tak je zbytečné i to vytváření pole.

Ten kód jde dost zrubat:
1) Místo volání metody setAttribute můžeš přiřazovat rovnou do value.
2) Pokud nevyplníš value, je hodnotou zobrazovaný text => je zbytečné vyplňovat value, pokud má být stejná jako text.
3) Tvorbu <option>u jde zapsat i jako new Option("text", "hodnota") nebo new Option("text a zároveň hodnota").

Takže do<select>u můžeš přidávat jednoduše select.appendChild(new Option(pole[i])).
breeta
Profil *
Diky všem, nakonec jsem to napsal takhle:


    var valuesOption = ["Půjčka / úvěr", "Hypotéční úvěr", "Kreditní karta", "Kontokorent", "Povolený debet", "Úvěr ze stavebního spoření", "Leasing" ];
  
    for (var i=0; i < valuesOption.length; i++) {
    var newOption = new Option (valuesOption[i]);
    select.add(newOption, undefined);    
 }
 
 
Chamurappi
Profil
Reaguji na breetu:
Ale předpokládám, že ti to nefunguje správně ve všech prohlížečích. Použij ten appendChild.
breeta
Profil *
Chamurappi
IE8, Firefox, Opera vše OK!
Chamurappi
Profil
Reaguji na breetu:
To je málo. Testuj lépe.

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