Bonjour,
Alors, je me suis mis en tête de réaliser un paragraphe qui, lorsque l'on clique dessus, devient une zone de saisie de texte avec un bouton pour confirmer la modification du paragraphe, ceci avec le DOM et replaceChild. Seulement, j'y ai passé trois heures, dont deux à chercher ce qui n'allait pas, et je n'ai aucune idée de ce que j'ai mal fait ! Voilà donc le code :
J'ai mis ce code dans le document HTMl avec la balise script. Ce qui se passe : j'ai ma page qui s'affiche, je peux cliquer sur le paragraphe, et j'ai alors le formulaire qui s'affiche correctement. Mais quand je clique sur le bouton de validation du formulaire, je ne retrouve pas le paragraphe !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 var parent= document.createElement('p'); var edit=document.createTextNode('Paragraphe éditable'); parent.appendChild(edit); ul.appendChild(parent); parent.addEventListener('click', edite); function edite(event) { var txt = event.target.innerHTML; var textarea=document.createElement("textarea"); textarea.value=txt; parent.replaceChild(textarea,edit) ; var b = document.createElement('button'); b.innerHTML = 'Valider'; ul.appendChild(b); b.addEventListener('click', confirme); } function confirme(event) { var bout=event.target; alert("caco"); var edite=document.createTextNode('Paragraphe éditable'); alert("ok"); parent.replaceChild(edite,textarea); alert("caca"); var nvtxt=textarea.innerHTML; alert(nvtxt); edit.innerHTML=nvtxt; }
A noter que je n'ai pas encore essayé de conserver le texte saisi dans le formulaire pour le transférer dans le paragraphe, je suis vraiment sur ce problème du second replaceChild. Et j'ai trouvé une solution à cet énoncé, mais elle n' utilise pas replaceChild, ce qui m'a l'air plutôt compliqué !
A noter également qu' il y a des restes de mes nombreuses tentatives de débogage, d' où les variables inutilisées notamment.
J'aimerais donc que vous m'expliquiez ce qui ne va pas ici, et, si possible, que vous me le corrigiez
Merci d'avance !
Ookajiro
Partager