2010-10-09 23 views
13

Mam div, który potencjalnie może mieć hiperłącze z identyfikatorem odpowiedzi. Jak mogę sprawdzić, czy istnieje a[id=reply]? Pomyślałem, że może to być coś takiego, ale ostrzega wiadomość, nawet jeśli hiperłącze nie istnieje.Jak sprawdzić, czy dziecko istnieje?

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

Odpowiedz

27

sprawdzić .length selektora, aby zobaczyć, jak wiele elementów jest dopasowany, w tym przypadku:

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

Jednak brzmi jak masz wiele elementów o id="reply", który jest nieprawidłowy. Zamiast używać class="reply" a selektor będzie wyglądać następująco:

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

+1, wygrane przez 26 sekund: o Zmieniano dla brakujących cytatów. – Matchu

+0

@Scarface - Zamiast tego powinieneś użyć klasy ... ID powinno pojawić się tylko raz na stronie. –

+0

dziękuję bardzo jak zwykle Nick, doceniam to: – Scarface

4

Innym sposobem, aby to zrobić:

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

Tutaj szukamy ** dowolne ** dziecko klasy '.reply', tak jak zadawał OP, nie tylko dzieci pierwszego poziomu, jak w wybranej odpowiedzi. –

Powiązane problemy