Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver une element fils

3 réponses
Avatar
Thierry
'jour,

J'ai deux div conteneurs contenant des div fils pouvant avoir les même id :
<div id="cont1"/>
<div id="fils1"/>
<div id="fils2"/>
<div id="fils3"/>
</div>
<div id="cont2"/>
<div id="fils2"/>
</div>

Je veux supprimer fils 2 de cont2. Mais document.getElementById ne me donne
pas le bon fil2. Comment faire ?

3 réponses

Avatar
Olivier Miakinen

J'ai deux div conteneurs contenant des div fils pouvant avoir les même id :


Ben non, c'est interdit par la norme. Si tu le fais, tu ne dois pas te
plaindre après que ça ne marche pas.

<cit. http://www.la-grange.net/w3c/html4.01/struct/global.html#h-7.5.2>
id = nom [CS]
Cet attribut assigne un nom à un élément. Ce nom doit être unique
dans le document.
</cit.>

Je veux supprimer fils 2 de cont2. Mais document.getElementById ne me donne
pas le bon fil2.


C'est normal. Comme l'id est supposé unique, cette fonction n'est pas
censée en trouver plusieurs.

Comment faire ?


Corriger le HTML.

[ copie et suivi dans fciw.auteurs ]

Avatar
ASM
'jour,

J'ai deux div conteneurs contenant des div fils pouvant avoir les même id :


Ha ben NON! ils ne pourront avoir les mêmes divs !
C'est interdit !
Et c'est pourquoi le navigateur (et son JS) ne pourra les trouver (tous)

<div id="cont1"/>
<div id="fils1"/>
<div id="fils2"/>
<div id="fils3"/>
</div>
<div id="cont2"/>
<div id="fils2"/>
</div>

Je veux supprimer fils 2 de cont2. Mais document.getElementById ne me donne
pas le bon fil2. Comment faire ?


var d = document.getElementById('cont2').getElementsByTagName('DIV')[0];
d.parentNode.removeChild(d);


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
Thierry
ASM écrivait
news:464f0c4d$0$5105$:

'jour,

J'ai deux div conteneurs contenant des div fils pouvant avoir les
même id :


Ha ben NON! ils ne pourront avoir les mêmes divs !
C'est interdit !


C'est que je soupçonnais.

[snip]

var d > document.getElementById('cont2').getElementsByTagName('DIV')[0];
d.parentNode.removeChild(d);


C'est pas forcement le premier element...

Bon, j'ai mis deux jeux d'identifiant en fonction du conteneur et ca
marche.