2010-10-09 3 views
13

У меня есть div, который потенциально может иметь гиперссылку с идентификатором ответа. Как я могу проверить, существует ли это a[id=reply]? Я думал, что это может быть что-то вроде этого, но оно предупреждает об этом, даже если эта гиперссылка не существует.Как проверить, существует ли дочерний элемент

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

ответ

27

Проверьте .length селектора, чтобы увидеть, сколько элементов она соответствует, в данном случае:

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

Однако звуки как у вас есть несколько элементов с id="reply", который является недействительным. Вместо того, чтобы использовать class="reply" и ваш селектор будет выглядеть следующим образом:

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

+1, выиграл 26 секунд: о редактировал отсутствует котировку. – Matchu

+0

@Scarface - Вместо этого вы должны использовать класс ... идентификатор должен появляться только один раз на странице. –

+0

Большое спасибо Ник, как обычно, оцените его – Scarface

4

Другой способ сделать это:

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

Здесь мы ищем ** любой ** дочерний класс класса '.reply', точно так же, как запрошенный OP, а не только дети первого уровня, как в выбранном ответе. –

Смежные вопросы