Autor | Zpráva | ||
---|---|---|---|
Milan1236000 Profil |
Čau,
mám následující situaci: V jQuery si v cyklu přidám na stránku nějaké stejné prvky, u kterých se jen jejich "id" zvyšuje o 1 (např. pole1, pole2...pole30) a protože pak s hodnotami v polích ještě dál pracuju, tak si po vypsání těchto prvků nadeklaruju proměnné: var pole1 = $("#pole1"); var pole2 = $("#pole2"); ... var pole30 = $("#pole30"); Jde nějak tato otrocká deklarace taky hodit rovnou do toho cyklu, aby se to nadeklarovalo samo? Případně jak? Díky. |
||
Keeehi Profil |
#2 · Zasláno: 21. 7. 2019, 01:13:48
Milan1236000:
Řešením je použít opravdové pole. |
||
Milan1236000 Profil |
Keeehi:
Tím mým polem mám na mysli input . Před položením dotazu jsem právě zkoušel deklaraci v cyklu způsobem
for (var i = 1; i === 30; i++) { let selector = "pole" + i; $("#table").append("...<input id='" + selector + "'...>..."); var selector = $("#" + selector + ""); } Jakým způsobem tedy deklaraci nebo tu práci s těmi poli provést přes array ? Zatím mě nic nenapadá.
Díky. |
||
mckay Profil |
#4 · Zasláno: 21. 7. 2019, 10:42:59
Milan1236000:
Když budu vycházet z kódu, který máš uvedený, tak by Ti možná mohlo fungovat: 1. Hodit před cyklus var selectors = []; - To bude sloužit jako "uložiště" odkazů na jednotlivé input
2. Opravit podmínku cyklu: for (let i = 1; i < pocet_policek+1; i++) { // pocet_policek musí být definované dříve a odpovídat počtu políček ve stránce, plus jedna, protože čísluješ od 1. var selector ... za selectors.push( $("#" + selector + "") );
Celkově by to tedy mohlo vypadat nějak takto: let pocet_poli = 30; let selectors = []; for (var i = 1; i < pocet_poli + 1; i++) { let selector = "pole" + i; $("#table").append("...<input id='" + selector + "'...>..."); selectors.push($("#" + selector + "")); } // V selectors nyní bude odkaz na všechny z inputů. |
||
Keeehi Profil |
Nejbližším fungujícím přepisem toho tvého kódu je
var inputs = []; for (var i = 0; i < 30; i++) { $("#table").append("<input id='pole" + i + "'>"); inputs.push($("#pole" + i)); } console.log(inputs) Pokud inputy opravdu reprezentují hodnoty nějakého pole, pak by HTML kód měl vypadat takto: <form name="table"> <input name="pole[]"> <input name="pole[]"> ... </form> Javascript by pak samozřejmě vypadal jinak. Nicméně ono taky záleží, co chceš pak s těmi inputy dělat. Ukládat si reference na ně, jen tak, pro nic za nic je zbytečné. |
||
Milan1236000 Profil |
#6 · Zasláno: 21. 7. 2019, 16:26:00
Můj uvedený příklad je velmi zjednodušený. Takže místo deklarace rovnou procházet pole se selektory, už chápu. Díky moc. :)
|
||
Časová prodleva: 6 let
|
0