Autor | Zpráva | ||
---|---|---|---|
HGD Profil |
nechápu to, ale když napíšu :
var obsah = document.getElementById('vypis_souboru').innerHTML; |
||
pmg Profil |
#2 · Zasláno: 3. 8. 2008, 19:48:37 · Upravil/a: pmg
Předávat referencí se dají jen některé objekty. Všechny primitivní typy (pole, čísla, řetězce, logické hodnoty) se při přizazení do proměnné kopírují. Přiřazením vlastnosti innerHTML (což je řetězec) se tedy ztrácí její propojení s původním elementem.
Do proměnné bys mohl přiřadit maximálně ten vypis_souboru (to je element). var vypis = document.getElementById('vypis_souboru'); vypis.innerHTML = '<a href="" onClick="">'+files[i].firstChild.nodeValue+'</a>'; |
||
peta Profil |
#3 · Zasláno: 4. 8. 2008, 09:35:57
HGD
viz pmg document.getElementById('vypis_souboru').innerHTML -> generuje string, string neni objekt a tim padem se to nemuze zpetne zapsat do objektu |
||
Chamurappi Profil |
#4 · Zasláno: 4. 8. 2008, 12:12:37
Reaguji na pmg:
„Přiřazením vlastnosti innerHTML (což je řetězec) se tedy ztrácí její propojení s původním elementem.“ Jen doplním, že i kdyby typ vlastnosti innerHTML nebyl primitivní a předávala se reference, tak pozdější přiřazení čehokoliv do téže proměnné referenci stejně zruší. |
||
pmg Profil |
#5 · Zasláno: 4. 8. 2008, 12:33:37 · Upravil/a: pmg
Chamurappi
Díky za vysvětlení, už jsem tomu možná přišel na kloub;-) Referencí se předávají všechny objekty, ale některé nemají metody, které by umožnily je změnit. Při úpravě se vytvoří nový objekt, který ten starý nahradí. |
||
HGD Profil |
#6 · Zasláno: 4. 8. 2008, 19:46:35
aha, tak díky moc
A mam ještě jeden dotázek, potřebuju přes to inerHTML vypsat do buňky soubory, ale vypisuje se to v cyklu, protože je použit AJAX, ale vypisuje se mi dycky až ten poslední vlastně z cyklu, jak se to pořád přepisuje, ale newim jak to přidat |
||
pmg Profil |
#7 · Zasláno: 4. 8. 2008, 20:16:26
var obsah = ''; // do této proměnné se v cyklu poskládá obsah
for (var i in response) { // procházení získaných dat, jen příklad obsah += response[i].soubor; // do proměnné obsah se postupně přidají všechny soubory } document.getElementById('vypis_souboru').innerHTML = obsah; Nevím, v jakém formátu data jsou a jak se procházejí, ale důležité je, že použitím += místo = se text přidá na konec řetězce v proměnné. Možná by to celé šlo jednodušeji pomocí join. Když tak sem zkus poslat ten skript. |
||
peta Profil |
#8 · Zasláno: 5. 8. 2008, 08:52:36
obsah = x;
obsah += x; obsah = obsah + x; jakpsatweb - javascript - operace |
||
HGD Profil |
#9 · Zasláno: 5. 8. 2008, 21:15:32
nefunguje mi to, já sem na JS lempl :)
function vyberFolder(httpRequest){ if(httpRequest.readyState == 4){ // - odpověd přijata vpořádku if(httpRequest.status == 200){ // - vše v pořádku var files = httpRequest.responseXML.getElementsByTagName('soubor'); var obsah; for(var i=0; i<=files.length; i++){ obsah += files[i].firstChild.nodeValue; } document.getElementById('vypis_souboru').innerHTML = obsah; }else{ // - stránka nenalezena, popř. jiná chyba alert("Chyba pri nacitani stanky "+ httpRequest.status +":"+ httpRequest.statusText); } }else{ // - nepřipravená odpoved } }; |
||
Časová prodleva: 16 let
|
0