MrNix21
@MrNix21

Как в jQuery перебрать все элементы с одинаковым классом и задать определенное условие?

Всем привет! У меня такая задача, перебрать все элементы на странице с определенным классом и проверить содержится ли в них текст со строкой "0". И выполнить определенное действие: если хоть один выбранный элемент содержит текст "0", то надо скрыть другой элемент. Есть такая структура:
<li><div class="pqis">0</div></li>
<li><div class="pqis">0</div></li>
<li><div class="pqis">0</div></li>
<li><div class="pqis">3</div></li>

<div class="radio"><label for="rbs"><input id="rbs">Онлайн-оплата</label></div>

function hiddenOnlinePayment() {
	$('.pqis').each(function(i,elem) {
	if ($(this).html() == '0') {
		$('input#rbs').parent($('label')).parent($('.radio')).fadeOut();
	} else {
		$('input#rbs').parent($('label')).parent($('.radio')).fadeIn();
	}
});
}

$(function(){
	hiddenOnlinePayment();
});

$('.reload_button_cart').on('click',function(){
       hiddenOnlinePayment();
});

Т.е. мне надо если хоть один элемент с классом .pqis содержит текст "0", то скрыть элемент с классом .radio. Эта функция должна срабатывать при загрузке страницы и по нажатию определенной кнопки. Но работает некорректно, зависит от того где располагается элемент с текстом 0, т.е. на какой итерации.
Подскажите, как доработать скрипт?
  • Вопрос задан
  • 2105 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Перебирать вручную не нужно, в jq есть псевдоселектор :contains(text)
const $elemsWithZero = $('.pqis:contains(0)');
if ($elemsWithZero.length) {
  $('.radio').hide();
}


короче но менее читабельно:
if ($('.pqis:contains(0)').length) {
  $('.radio').hide();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ettaluni
@ettaluni
ERROR MEME
Наверное не $(this).html() == '0' а '0'.indexOf($(this).text()) !== -1
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
$('#rbs').closest('.radio').fadeOut(); // или .fadeIn(), в зависимости от нужд
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы