Bonjour,
Existe t-il une méthode permettant de retourner un "child" dans le model DOM par son id.
Je cherche Noeud.getChildById()
Merci d'avance
Version imprimable
Bonjour,
Existe t-il une méthode permettant de retourner un "child" dans le model DOM par son id.
Je cherche Noeud.getChildById()
Merci d'avance
non ca existe pas faut la créer.
Si tu cherches juste un enfant par son id, une simple boucle sur les enfants suffira, sinon il faut utiliser document.getElementById, et vérifier si le résultat est un descendant du contexte définit.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 var getElById = function(context, id){ var el = document.getElementById(id); if(el){ if(el.compareDocumentPosition){ return (el.compareDocumentPosition(context) & 8) === 8 }else if(context.contains){ return context.contains(el); }else{ //boucle sur tout les descendants et vérifie que el y figure } } }
???? je reste perprlex !
un id étant unique sur page ... a quoi bon un contexte ???
Suffit de faire directement:
après tout dépend de ce que tu cherches a pointer ..Code:document.getElementById('idobj')
le node a-t-il un id un name ?
faudra peut etre passer par les childNodes ...
en effet, mais l'élément peux être déplacé dans le dom, ou créé dynamiquement ... les sélécteurs css de type div#id sont encore plus troublant,et pourtant très fréquent..Citation:
???? je reste perprlex !
un id étant unique sur page ... a quoi bon un contexte ???
Cette fonction n'a pas que comme objectif de récupérer un élément, mais aussi de savoir si cette élément est un descendant d'un parent, c'est bien deux fonctions distinct.
autant taper l'objet et recupérer ensuite son parent ???
Je ne vois pas l'interet de passer par le parent pour chopper un objet ayant un id ... ???
Bonjour,
J'ai essayé d'utiliser directement: document.getElementById() mais c ne marche pas !!!
En effet mon objet à récupérer est rattaché un un élément parent qui ne se trouve pas dans la même page que le noeud fils.
J'ai essayé: parent.document.getElementById("id_Noeud_pere").ChildNodes[],
Je récupère plusieurs noeud fils !!!
merci de preciser que l'objet n'est pas sur la même page !!!
Il y a un post dans les contributions sur les conversations mère-fille
oui rien de plus normal..Citation:
J'ai essayé: parent.document.getElementById("id_Noeud_pere").ChildNodes[],
Je récupère plusieurs noeud fils !!!
Mais si tu nous disais plutot exactement ce que tu cherches à récupérer ...
Là on est un peu dans le flou ! Tu veux le Noeud ? son parent ? ses frères ?
En fait je cherche a récupérer un fils particulier (ou un frère particulier ;) ) à partir d'un noeud parent.
pourquoi à partir du noeud parent ???
si tu as son id appelle le directement !!!!
Bonjour,à la lecture de tes réponses, un doute me vient : as-tu bien intégrer le fait qu'un id doit être unique (dans une page donnée) ?
Si oui, effectivement, quel intérêt ?
Si tu n'as aucune maîtrise de la structure de ta page (:aie:) et que tu as besoin de connaitre le lien parent/enfant, dans ce cas, la solution de kimjoa semble être la seule.
Mais là encore, quel intérêt ?
Sans plus d'infos, personne ne pourra t'aider plus ... :?
A+
Finalement j'ai réussi à récupérer le noeud fils comme suit:
parent.document.getElementById(id_fils).
Merci à vous tus pour votre aide