CreateElement et insertBefore

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : CreateElement et insertBefore

par jojolapine » 23 nov. 2006, 16:08

ça donne ce qu'il faut le alert, mais je viens de me rendre compte que j'avais déja un appendChild plus bas dans le code (je reprend un code déja fait), et donc en le remplaçant, ça fonctionne!!
merci pour l'aide

par mere-teresa » 23 nov. 2006, 15:58

Code : Tout sélectionner

alert(sNoteId + "autour")
ça donne quoi ?

par jojolapine » 23 nov. 2006, 14:13

Ben c'est à peu de chose près ce que je fait non ?
j'ai essayer ceci:

Code : Tout sélectionner

var divautour = document.createElement( 'div' ) divautour.className = (classnote == undefined) ? 'note' : classnote divautour.id = sNoteId+'autour' var hNewNote = document.createElement( 'div' ) hNewNote.className = 'note' var sLinkVisible = 'visible' hNewNote.id = sNoteId document.getElementById(sNoteId+'autour').appendChild(hNewNote)
et voici l'erreur retournée:

Code : Tout sélectionner

Erreur : document.getElementById(sNoteId + "autour") has no properties Fichier source : http://xxxx.js Ligne : 46

par mere-teresa » 23 nov. 2006, 14:01

Voilà comment je fais pour ajouter des li à un ul, les li contenant des liens (a)

Code : Tout sélectionner

var egt = document.createElement('li'); var lnk = document.createElement('a'); var texte = document.createTextNode(resultat.getAttribute('titre')); lnk.appendChild(texte); lnk.setAttribute('href', resultat.getAttribute('url')); lnk.setAttribute('title', resultat.getAttribute('titre')); egt.appendChild(lnk); document.getElementById('suggestions').appendChild(egt);

par jojolapine » 23 nov. 2006, 12:01

Merci pour cette rapide réponse... je n'ai plus de messages d'erreur maintenant, mais ça ne fonctionne pas...
Voici ce que je veut obtenir

Code : Tout sélectionner

<div class="xxxautour"> <div class="xxx"> </div> </div>
et voici le nouveau code utilisé:

Code : Tout sélectionner

var divautour = document.createElement( 'div' ) divautour.className = (classnote == undefined) ? 'note' : classnote divautour.id = sNoteId+'autour' var hNewNote = document.createElement( 'div' ) divautour.appendChild(hNewNote) hNewNote.className = 'note'

par Cyrano » 23 nov. 2006, 11:37

Si l'élément doit être imbriqué dans un autre élément, utilise la méthode appendChild(). Plus de détails sur la manipulation via le DOM ICI

CreateElement et insertBefore

par jojolapine » 23 nov. 2006, 11:29

Bonjour à tous,
voilà, je suis en train de faire une petite application qui a besoin de générer des divs imbriqué, et je n'y arrive pas, voilà le code que j'utilise:

Code : Tout sélectionner

//création de div conteneur var divautour = document.createElement( 'div' ) divautour.className = (classnote == undefined) ? 'note' : classnote divautour.id = sNoteId+'autour' // attributions de quelques valeurs // création du div contenu var hNewNote = document.createElement( 'div' ) document.insertBefore(hNewNote, document.getElementById(sNoteId+'autour')); // insertion dans le précédent => ne marche pas hNewNote.className = 'note'
voilà si vous aviez une idée de ce qui ne va pas
ci-joint le message d'erreur:

Code : Tout sélectionner

Erreur : uncaught exception: [Exception... "Node cannot be inserted at the specified point in the hierarchy" code: "3" nsresult: "0x80530003 (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)" location: "http://xxxxx.js Line: 38"]