Проверьте, содержит ли элемент другой в jQuery

Я нашел много связанных вещей в Stack Overflow, но не применимо для моего случая.

Все это в этом примере, мне нужно проверить, содержит ли элемент другой, и если да, добавьте что-то.

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    //I want to check if comment containa a .comment_full element, if no, append.
    comment.append('add');
});

Надеюсь, ты поможешь мне, я пробовал так много всего...

Ответ 1

Просто используйте .find() и проверьте, возвращает ли элемент, например:

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    if (! comment.find('.comment_full').length) {
       comment.append('add');
    }
});

Ответ 2

Вы можете использовать .has и .length:

if (comment.has('.comment_full').length) {
    // It has that element
}
  • .find будет перебирать все потомки, но .has остановится, как только будет найден потомок, соответствующий селектору. Он может работать быстрее.

  • .length просто проверяет, не является ли длина результирующего набора элементов ненулевым.

Ответ 3

Большинство этих ответов неверны. Вы должны передавать DOM node не элемент jQuery для $.contains для правильной работы за https://api.jquery.com/jQuery.contains/.

Например, так вы определяете, содержит ли $('#a') $('#b).

HTML:

<div id="a">
  <div id="b"></div>
</div>

JavaScript:

var $a = $('#a');
var $b = $('#b');
var contains = $.contains($a.get(0), $b.get(0));
console.log('contains', contains);
// outputs `true`

Ответ 4

Большинство из этих ответов отличные, но есть новый метод под названием contains(container,contained) (добавлен в 1.4), который возвращает Boolean! Это в основном то же самое, что и фрагмент кода Blender, но, вероятно, быстрее, как для ввода, так и для выполнения.

Реализовано в вашем коде, это будет выглядеть так:

$(".bt_repondre").click(function(){
    comment = $(this).parent().parent().parent();
    if(!$.contains(comment, $('.comment_full')))//same as if(!jQuery.contains(...
    {
        comment.append('add');
    }
});

Ответ 5

Если вы посмотрели, скажем, любой элемент tr внутри таблицы с id myTable, вы можете использовать следующий код:

if($('#productsTableBody tr').length)
{
//...
}

Таким образом, мы можем проверить, что таблица wheather содержит любую строку.

Ответ 6

попробуйте это

 comment.has('a.comment_full').length == 0