Autor | Zpráva | ||
---|---|---|---|
breeta Profil * |
#1 · Zasláno: 11. 8. 2010, 19:01:03
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 |
#2 · Zasláno: 11. 8. 2010, 19:31:20
Jediná možnosť bude použiť
window["option"+number] = pole[number] |
||
breeta Profil * |
#3 · Zasláno: 11. 8. 2010, 19:45:51
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 |
#4 · Zasláno: 11. 8. 2010, 19:56:03
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 |
#5 · Zasláno: 11. 8. 2010, 20:25:14 · Upravil/a: Tori
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 |
#6 · Zasláno: 11. 8. 2010, 20:28:27 · Upravil/a: Chamurappi
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 * |
#7 · Zasláno: 12. 8. 2010, 08:36:28
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 |
#8 · Zasláno: 12. 8. 2010, 09:29:34 · Upravil/a: Chamurappi
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 * |
#9 · Zasláno: 12. 8. 2010, 10:30:40
Chamurappi
IE8, Firefox, Opera vše OK! |
||
Chamurappi Profil |
#10 · Zasláno: 12. 8. 2010, 12:42:41
Reaguji na breetu:
To je málo. Testuj lépe. |
||
Časová prodleva: 14 let
|
0