getAttribute restituisce il valore dell'attributo specificato.
Tu invece devi recuperare il valore di un nodo. Il passaggio è un po' più complesso:
codice:
var NOMECAPTION = MENUITEM[j].getElementsByTagName("caption")[0].childNodes[0].nodeValue;
var NOMELINK = MENUITEM[j].getElementsByTagName("link")[0].childNodes[0].nodeValue;
Dovrai usare sempre getElementsByTagName tenendo conto che ti sarà restituita una lista di elementi (anche se c'è un solo elemento), perciò dovrai recuperare innanzitutto il primo elemento per "caption" (e analogamente per "link"). Avrai una roba del genere:
codice:
MENUITEM[j].getElementsByTagName("caption")[0]
Questo passaggio ti restituisce il primo (e unico) elemento "caption" dal quale devi estrapolare il valore. Per lo stesso principio, di cui sopra, si otterrà sempre una lista anche se questo è un nodo testuale (teoricamente potresti avere qualsiasi altro nodo dentro caption).
Per recuperare il valore testuale devi usare la proprietà childNodes specificando il valore 0:
codice:
MENUITEM[j].getElementsByTagName("caption")[0].childNodes[0]
A questo punto puoi leggere il valore testuale usando la proprietà nodeValue:
codice:
MENUITEM[j].getElementsByTagName("caption")[0].childNodes[0].nodeValue