ciao a tutti, volevo capire una cosa su questo codice:
codice:
function getElements(doc, element, attribute) {
this_doc = doc;
array_elements = this_doc.getElementsByTagName(element);
for (i=0; i<array_elements.length; i++) {
this_element = eval("array_elements["+i+"]."+attribute);
alert(this_element);
}
}
La funzione prende rispettivamente come argomenti un riferimento all'oggetto document, un elemento e un attributo ad es.
codice:
getElements(document, 'a', 'href');
mi consente di vedere quanti links sono presenti nella pagina. Il problema è che il codice non fa l'alert dei vari link (ce ne sono cinque) a meno che non metta un qualsiasi alert subito prima del ciclo for, cioè così
codice:
...
array_elements = this_doc.getElementsByTagName(element);
alert("qualsiasi cosa");
for (i=0; i<array_elements.length; i++) {
...
Ovvero sembra che quando faccio la scansione dell'array degi elementi l'istruzione precedente non sia - per così dire - terminata probabilmente per via del fatto che in js le istruzioni sono asincrone.
- Ho provato a costruire una funzione che faccia una pausa al posto dell'alert ma il problema non si risolve.
- Ho provato a usare un costrutto del tipo
codice:
do {
array_elements = this_doc.getElementsByTagName(element);
while (array_elements == undefined)
ma niente.
Qualcuno ha idea di come risolvere questo problema?
Ciao