Spero in un vostro aiuto, non conosco benissimo javascript. Ho una funzione che crea un textnode dentro un <td> di una tabella, richiamata con onclick su una immagine che funge da pulsante:
// la funzione crea un nodo di testo dentro la cella di una tabella, al posto di 'id' viene inserito // l'id della cella, al posto di 'txt' il testo che deve comparire. Questa funzione viene eseguita // correttamente, senza errori.
function makeTxt(id,txt){
if (document.getElementById && document.createTextNode){
var obj = document.getElementById(id);
frase = document.createTextNode(txt);
obj.appendChild(frase);
}
}
Ho poi creato una funzione che, sempre con onclick ma su un'altra immagine, rimpiazza il TextNode appena creato con un altro nuovo:
// Anche questa si esegue correttamente.
function replaceTxtNode(id,txt)
{
if(document.getElementById && document.createTextNode)
{
var obj = document.getElementById(id);
obj.replaceChild(document.createTextNode(txt),obj. firstChild);
}
}
Siccome quando richiamavo replaceTxtNode, veniva creato un nuovo nodo che però non cancellava quello precedente (praticamente, davanti al nodo della prima funzione, si piazzava il secondo nodo; però il primo nodo restava ugulamente visibile nella cella, attaccato al secondo), ho tentato di usare innerHTML per provare a pulire la cella:
function replaceTxtNode(id,txt)
{
if(document.getElementById && document.createTextNode)
{
var obj = document.getElementById(id);
// qui ho cercato di svuotare la cella, in modo da visualizzare soltanto il nuovo nodo
if (obj.innerHTML != ""){
obj.innerHTML = "";
}
// fine delle modifiche
obj.replaceChild(document.createTextNode(txt),obj. firstChild);
}
Purtroppo in questo modo replaceTxtNode non funziona più correttamente. Sapete come posso procedere per sostituire totalmente il contenuto della cella?
Grazie in anticipo per l'aiuto !![]()

Rispondi quotando
