Sfrutto questo topic già aperto per porvi un altro quesito:
io ho una funzione js in cui sfrutto getElementById() per richiamare un elemento della pagina e compiere su di esso determinate azioni...ora, la questione è, perchè se richiamo direttamente la funzione, questa va senza problemi, mentre se la richiamo all'interno di un'altra funzione ottengo sempre l'errore
Codice:
TypeError: Result of expression 'document.getElementById(*)' [null] is not an object.
Vi faccio un esempio:
ho ad esempio questa funzione
Codice:
function cngClass(mode) {
var a = getElementsSelected();
if(a != null)
{
document.getElementById(a).className = "";
}
document.getElementById(mode).className = "selected";
}
se io all'interno della mia pagina la richiamo semplicemente con:
Codice:
onclick="cngClass('elemento')"
tutto funge senza problemi
però, se io la richiamo attraverso un'altra funzione, tipo questa:
Codice:
function extLink(docname) {
var cont = document.location.hash;
if(cont !== '')
{
cont = cont.replace("#","");
cngClass(cont);
}
}
non funziona ed ottengo l'errore sopracitato
A cosa può essere dovuto ciò?
Io credo che sia dovuto a getElementById(), anche se non riesco a capire il perchè...anche perchè ad esempio, la funzione getElementsSelected(), richiamata all'interno di cngClass, funziona senza problemi, ed il suo codice è questo:
Codice:
function getElementsSelected()
{
var id;
var _getAllTags = document.getElementsByTagName('*');
for(var i = 0; i < _getAllTags.length; i++)
{
if (_getAllTags[i].className === "selected")
{
id = _getAllTags[i].id;
}
}
return id;
}
Grazie