Проверьте, содержит ли элемент другой в 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