Question bête niveau CE1 - jQuery

Par Florian.C, il y a 8 ans


Bonjour,

Question vraiment bête donc, comment vérifier si une div possède une div qui à un certaine id :

<div id="principal"> <div id="secondaire1"></div> <div id="secondaire2"></div> <div id="secondaire3"></div> </div>

J'ai essayé avec l'attribut .children car comme il est dit dans la doc "search through the children of these elements" mais le problème c'est que pour moi l'action ce fait partout pourtant #secondaire2 n'est lui présent que sur certaines pages..

if( $('#principal').children('#secondaire2') ){ //une action }

Merci :)

6 réponses

Florian.C, il y a 8 ans

Merci, j'ai déjà testé avec .has() mais j'ai le même problème. Il fait l'action alors que cette id secondaire2 n'est pas présent..

G1.3, il y a 8 ans

Salut

Il suffit d'ajouter un .length:

if ($('#principal').children('#secondaire2').length) { console.log('ok'); }

ou

if ($('#principal').has('#secondaire2').length) { console.log('ok'); }

C'est mieux ?

Florian.C, il y a 8 ans

Oui super :)

Tu peux m'expliquer pourquoi il faut l'utiliser ?

Kenor, il y a 8 ans

Pense à faire des console.log quand tu ne sais pas pourquoi la condition ne fait ce que tu souhaites.

en l'occurence, tu aurais vu qu'il existe une propriété "length" qui vaut 0 lorsqu'il n'y a aucun résultat trouvé. (et X quand il y a X résultats trouvés).

Florian.C, il y a 8 ans

Je passe mon temps à en faire t'inquiète :) Mais je ne comprends pas pourquoi l'utiliser c'est pour ça