2010-10-09 112 views
13

我有一个div,可能有一个带有回复ID的超链接。我如何检查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 2010-10-09 16:57:05

+0

@Scarface - 你应该使用一个类,而不是...一个ID应该每页只出现一次。 – 2010-10-09 16:58:27

+0

非常感谢Nick照例,欣赏它 – Scarface 2010-10-09 16:58:42

4

另一种方式来做到这一点:

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

在这里,我们搜索**'.reply'类的任何**孩子,就像OP问的那样,不仅是所选答案中的第一级孩子。 – 2016-08-05 14:15:34