2010-10-09 10 views
13

J'ai un div qui pourrait potentiellement avoir un lien hypertexte avec un identifiant de réponse. Comment puis-je vérifier si ce a[id=reply] existe? Je pensais que cela pourrait être quelque chose comme ça, mais il alerte le message même si ce lien hypertexte n'existe pas.Comment vérifier si l'enfant existe

if($('div[chunk_id='+reply_chunk_id+']').children('a[id=reply]')){    
    alert('test'); 
} 

Répondre

27

Vérifiez la .length du sélecteur pour voir le nombre d'éléments qu'il correspondait, dans ce cas:

if($("#reply").length) { 
    //child exists 
} 

Cependant, il sons comme vous avez plusieurs éléments avec id="reply", qui est invalide. Au lieu d'utiliser class="reply" et votre sélecteur ressemblera à ceci:

if($("div[chunk_id='"+reply_chunk_id+"'] > a.reply").length){ 
    //child exists 
} 
+0

+1, gagné par 26 secondes: o Edité pour la citation manquante. – Matchu

+0

@Scarface - Vous devriez utiliser une classe à la place ... un identifiant ne devrait apparaître qu'une seule fois par page. –

+0

merci beaucoup Nick comme d'habitude, appréciez-le – Scarface

4

Une autre façon de le faire:

if($("div[chunk_id="+reply_chunk_id+"]").children('.reply').length > 0){ 
    // it exists 
} 
+0

Ici, nous cherchons ** tout ** enfant de classe '.reply', tout comme l'OP a demandé, pas seulement les enfants de premier niveau comme dans la réponse sélectionnée. –