Effacer du texte à l'aide de removeChild !

hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009 - 20 mai 2008 à 20:45
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 - 21 mai 2008 à 11:14
Bonoir a tous,
voila j'essai de faire un formulaire dynamique en php / JS avec un bouton ajout de question, qui marche nikel et un lien supprimer, qui lui me pose certains problèmes.

Enfait j'utilise la technique d'attribuer un id à mes éléments créé et ensuite de le suprimé avec l'id.
Mais j'aimerais aussi supprimer du texte (ex : Réponse N°1).

La technique doit être différentes car losque j'attribut un id à mon noeud texte  :
erreur : Erreur : noeud_texte.setAttribute is not a function
Fichier source : http://localhost/sondage/JS/Add.js  // Ligne : 21

code :

function fAdd(nb_ques) //Ajout de zone text increment
{

var cmp = new String(GetQues(nb_ques));    //recuperation du nom dans une variable string
var newInput= document.createElement("input");
    newInput.type='text';
    newInput.value='rep_'+nb_ques+'_'+cmp; //permet de visualiser le rsultat
    newInput.name='rep_'+nb_ques+'_'+cmp;
    newInput.id='rep_'+nb_ques+'_'+cmp;
   
var br = document.createElement("br" );
    br.setAttribute("id", "br" + cmp);

 var removeLink = document.createElement("a" );  //lien pour supprimer l element
   removeLink.setAttribute("onclick", "removeInput("+nb_ques+","+cmp+")")
   removeLink.setAttribute("href", "#documents" )
   removeLink.setAttribute("id", "removeInput"+cmp)
   removeLink.appendChild(document.createTextNode('Supprimer'));
  
var noeud_texte = document.createTextNode('Réponse '+cmp+' : ');
    noeud_texte.setAttribute("id", "texte" + cmp);     <--- Impossible d'attribuer une id à mon texte com sur les autres elements
   
   
  
document.getElementById('choix_'+nb_ques).appendChild(br);
document.getElementById('choix_'+nb_ques).appendChild(noeud_texte);
//document.getElementById('choix_'+nb_ques).appendChild(document.createTextNode('Réponse '+cmp+' : '));
document.getElementById('choix_'+nb_ques).appendChild(newInput);
document.getElementById('choix_'+nb_ques).appendChild(removeLink);

}

function removeInput(nb_ques, cmp){
    var inputFile = document.getElementById('rep_'+nb_ques+'_'+cmp);
    var removeLink = document.getElementById('removeInput'+cmp);
    var removeText = document.getElementById('texte'+cmp);
    var br = document.getElementById('br'+cmp);
  
    document.getElementById('choix_'+nb_ques).removeChild(inputFile);
    document.getElementById('choix_'+nb_ques).removeChild(removeLink);
    document.getElementById('choix_'+nb_ques).removeChild(removeText);
    document.getElementById('choix_'+nb_ques).removeChild(br);
    }

Merci de votre aide

2 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 mai 2008 à 22:44
Bonjour,
On ne peut pas affecter d'id à un noeud
text, ce n'est pas une balise.
Tu peux t'en sortir en créant un élément SPAN,
auquel tu affectes une id et dans le quel tu mets ton noeud text.
;O)
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
21 mai 2008 à 11:14
Salut,

Si ton texte est situé dans un conteneur et qu'il ne contient pas de balise Html, tu peux supprimer le texte directement par le DOM en faisant :

var noeud = document.getElementById('monConteneur').firstChild;
document.getElementById('monConteneur').removeChild(noeud);
0
Rejoignez-nous