2016-03-22 94 views
1

我想找到所有.post-comment-replies有嵌套在他們(不是第一級)的'.post-comment-reply'jquery選擇所有有條件的兒童班級

使用下面的代碼我也得到那些沒有.post-comment-reply嵌套在他們那些.post-comment-replies

$(document).on('click', '.open-all-post-comments', function (event) { 
    var post_id = $(this).data('pid'); 
    var all_replies = $('#post_' + post_id).find('.post-comment-replies'); 
    all_replies.show(); 
    $(this).closest('.open-all-post-comments-row').hide(); 
}); 
+0

你是什麼意思_「(不是第一級)」 _? – guest271314

+0

我的意思是它嵌套深,所以像'.children()'不能工作。 –

回答

2

你可以用:has()選擇這樣做,

var all_replies = $('#post_' + post_id) 
        .find('.post-comment-replies:has(.post-comment-reply)'); 

這裏的:has()選擇將幫助我們獲得其中有一個或更多的派生.post-comment-reply.post-comment-replies

如果你想眼前的孩子從選擇逃避,那麼你可以使用,

var all_replies = $('#post_' + post_id) 
        .find('.post-comment-replies > :has(.post-comment-reply)'); 
+0

參見OP at _「(不是第一級)。」_ – guest271314

+0

雖然不確定OP是否引用'.post-comment-reply'或'.post-comment-reply'? – guest271314

+1

這就是我一直在尋找的東西。我會盡可能標記出來。 –