Newsgroup: it.comp.lang.javascript
Titolo: Aggiungere/Rimuovere elementi

Devo creare un questionario dinamico.
Ho una certa domanda a risposta multipla alla quale posso aggiungere o
rimuovere le risposte.
Ora, avrei bisogno di aggiungere un nuovo campo input e un paio di
bottoni quando premo il tasto "Aggiungi risposta".
Come posso fare, tenendo di conto che il numero di risposte non è
definito ma è dinamico in base a quanti campi aggiunge l'utente?
Per l'aggiunta non credo sia un problema.... basta un innerHTML per
aggiungere elementi.
Ma per rimuoverli?
Io pensavo di definire un div (con ID) per ogni risposta e poi, tramite
qualche funzione a me sconosciuta (:D), rimuovere completamente il Div
specificato.
E' possibile?
Come?
Grazie mille :)

 Grazie mille :)
De nada.
-- 
~ Il lavoro è quel lasso di tempo che intercorre tra una pausa caffè
 e l'altra.

 Creati un "prototipo" da clonare e riutilizzare. E' la strada più breve.
Beh io avevo creato una stringa che appendevo ad un div tramite
innerHTML.
Funziona perfettamente...
.... il problema è che se provo ad usare la getElementById non
funziona sugli elementi aggiunti tramite innerHTML!
E' un problema del mio codice o è normale che non riesca a reperire
l'ID di elementi aggiunti successivamente?
Dici che clonando un 'template' riuscirei a risolvere questo problema?
Grazie!! :>

Perfetto, sto imparando un bel pò ^_^
Adesso però ho problemi con l'aggiunta di un elemento.
Il problema è con la modifica dell'elemento.
Add() clona l'elemento e inizia a scorrere i vari elementi figli, in
modo da cambiarne il nome (nelle proprietà dove compare la lettera 'X'
si deve sostituire un numero progressivo).
Pare funzionare tutto ma se passo un 'children' a 'setAtt', all'alert
di 'A' mi dice che è 'null'
Mentre se proprio prima dell'istruzione stampo il 'children[i]' passato
non mi restituisce 'null'!!
Come mai?!  :(((
Qua sotto il codice delle funzioni:
#######################################
function setAtt(attribute, replacer, to)
{
	var A = to.getAttribute(attribute);
	alert(A);
	A = A.replace("X",replacer);
	to.setAttribute(attribute,
to.getAttribute(attribute).replace("X",replacer));
}
function Add(num)
{
	var rispDiv = document.getElementById("Risposte"); // Div contenente
le risposte
	var Div = document.getElementById("RispostaX"); // Modello da clonare
    nDiv = Div.cloneNode(true);
	// Ridefinisco gli attributi degli elementi sostituendo la generica X
/*
<span id="numX">X</span> - <input type="text" name="RispostaX" value=""
class="testo" />
	<img src="<%= BtnPlus %>" id="AddDiv" alt="Aggiungi" title="Aggiungi"
onClick="Add(X);" />
	<img src="<%= BtnMinus %>" id="SubDiv" alt="Elimina" title="Elimina"
onClick="Remove(X);" />
*/
	setAtt("id",J+1,nDiv);
	if (nDiv.hasChildNodes())
	// So, first we check if the object is not empty, if the object has
child nodes
	 {
	   var children = nDiv.childNodes;
	   for (var i = 0; i < children.length; i++)
	   {
			switch(children[i].tagName)
			{
			  case "SPAN":
			  alert(children[i]);
				setAtt("name",J+1,children[i]);
				children[i].innerHTML = J+1;
			  break; //si ferma qui
			  case "INPUT":
			  alert("WA!");
				setAtt("name",J+1,children[i]);
				setAtt("id",J+1,children[i]);
			  break; //si ferma qui
			  case "IMG":
			  alert("WI!");
			    setAtt("onClick",J+1,children[i]);
			  break; //si ferma qui
			  default:
			  alert("WO!");
			    //niente
			};
		}
	 }
	// Aggiungo l'elemento creato alla lista
	rispDiv.appendChild(nDiv);
	J += 1;
}
#######################################
Un aiutino vi scongiuro! :(

 Un aiutino vi scongiuro! :(
Adesso non ho molto tempo per leggere il codice, sarebbe di aiuto se tu
potessi inserire il tutto in una pagina html, il più minimale possibile, per
replicare l'errore, e mettessi tutto online da qualche parte.
In questo modo posso risolverti la questione più velocemente.
-- 
~ You don't have to be crazy to be a webmaster. But it helps.