devlop78
Invité n'ayant pas de compte PHPfrance
19 févr. 2011, 21:58
Bonjour à tous. Dans une reflexion PHP, je me suis posé la question de la mise à jour de la cohérence d'un architecture parents-enfants avec liste etc. Effectivement, si vous utilisez PDO_FETCH_OBJ, il serait dommage qu'en exécutant deux fois la même méthode pour obtenir une instance, par exemple pour utilisateur.id = 5, vous ayez deux instances différentes, et que si vous modifier une propriété de l'une, l'autre ne soit pas modifier. Enfin ... Dommage, oui et non. Le principal, est surtout de le savoir. Et j'ai eu, pour le boulot, besoin de savoir si un objet jQuery créé à partir d'un objet DOMElement de javascript natif, serait égal à un autre objet jQuery résultant d'une recherche. La réussite ne fut pas présente, et la journée était à sa fin.
J'ai donc testé, et j'en suis heureux :
<div id="pere">
<span id="enfant">coucou</span>
</div>
En javascript natif :
Code : Tout sélectionner
var pere= document.getElementById("pere");
var enfant= document.getElementById("enfant");
alert(pere == enfant.parentNode);
L'alerte retourne "true". C'est donc une excellente nouvelle, on a pas de duplication d'instance, et on parle bien de poulets quand il s'agit de poulets.
Pour jQuery, c'est une autre histoire, et ce n'est pas si anormal, puisque derrière l'objet jQuery ne se cache pas (enfin, supposition), un objet HTMLElement, ou du moins, il n'est stocké qu'en propriété.
Code : Tout sélectionner
var pere = $("#pere");
var enfant = $("#enfant");
alert(pere == enfant.parent());
L'alerte retourne "false". Bien sûr, dans ce cas, je peux comparer l'attribut "id" de chaque élement. Mais je n'ai pas forcément envie de donner un identifiant pour tout, je trouve que c'est contourner le problème.
J'ai aussi essayé :
pere.get() par exemple, retourne bien un ElementDivElement. L'autre aussi. A priori, dans ma page, il n'y a qu'un div ... et pourtant ... le resultat est "false".
Quelqu'un sait-il comment comparer si l'élément de jQuery fait bien référence au même élément HTML d'un autre objet ?
Cordialement,