2013-04-19 13 views
5

Sto provando a ottenere il innerHTML di un intervallo nascosto. Il codice JavaScript proviene da una pagina HTML iframe e l'estensione nascosta si trova nella pagina padre. Una funzione diversa funziona quando si accede a contenuti di un elenco dal genitore, ma non riesco a ottenere il mio span ...Errore JavaScript, nome mancante dopo. Operatore

OPERE

document.getElementById(parent.genL[i]); 

non lavorare

document.getElementById(parent."span"+i).innerHTML; 
- SyntaxError: missing name after . operator 

Il la riga di codice sopra risiede in un ciclo for e man mano che itera su i, acquisisce i dati da ogni span separato. gli span nascosti iniziano da ID "span1" fino a 10-40.000 diversi intervalli nascosti.

In ogni caso, ho la sensazione che debba fare qualcosa con il tentativo di concatenare la stringa int i. Presumo che io sia un int comunque. qualche idea? Grazie mille a tutti!

Modifica - Parole e aggiunto la porzione innerHTML alla riga di codice non funzionante. Non sono sicuro se questo farà la differenza o no ...

Edit2 - Grandi risposte a tutti, ho imparato alcuni buoni trucchi sintattici :) Ho semplicemente spostato il genitore. porzione alla parte anteriore del codice come suggerisce il commento di mplungjan e la risposta di Jacob T. Nielson. Per qualche motivo ho ancora ottenuto l'errore usando le parentesi come suggerito, ma sicuramente inserirò le parentesi nella mia memoria per future situazioni simili!

parent.document.getElementById("span"+i).innerHTML; 

:)

risposta

5

Penso che quello che stai cercando di fare è ottenere l'elemento i-esimo span nella pagina padre. Corretta?

si può fare in questo modo

var s = parent.document.getElementsByTagName('span')[i]; 
s.innerHTML // <-- access innerHTML 
6

provare a cambiare a un indicizzatore.

document.getElementById(parent["span"+i]); 
+1

Sono entrambi "indicizzazione". La differenza in termini è "notazione punto" (cosa sta tentando l'OP) rispetto a "notazione parentesi" (ciò che si ha) – Ian

+3

o forse parent.document.getElementById ("span" + i); – mplungjan

6

Se il parent tra parentesi è un oggetto e si sta cercando di accedere a qualcosa di simile a parent.span1 allora avete bisogno di usare la notazione staffa al posto del punto.

document.getElementById(parent["span"+i]); dovrebbe funzionare correttamente.