Задать вопрос
@narem

Как применить css к родителю найденного блока?

let number = $('.person-wr a.desc');
			for(let i = 0;i < number.length; i++){
				if(number[i].text.trim() == ''){
					number[i].parents('.add-info').css({'display':'none'});
				}
			}

Блоков person-wr a.desc может быть найдено сколько угодно, потом в цикле я пишу условие что сделать с родителями тех блоков у которых пустой текст. Но в консоли дает ошибку
jquery.min.js?ver=5.4:2 Uncaught TypeError: number[i].parents is not a function

Как мне правильно искать родителя найденного блока?
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Uncaught TypeError: number[i].parents is not a function

Конечно не функция. Это же элемент DOM-дерева, откуда у него возьмутся методы jquery? Вместо number[i] должно было быть $(number[i]) или number.eq(i).

А вообще, организовывать цикл вручную, через индекс стучаться к конкретному элементу нет необходимости:

$('.person-wr a.desc')
  .filter((i, n) => !$(n).text().trim())
  .closest('.add-info')
  .hide();

И jquery использовать не обязательно, как и править стили напрямую:

document.querySelectorAll('.person-wr a.desc').forEach(n => {
  n.closest('.add-info').hidden = !n.text.trim();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы