Задать вопрос
bazilio2010
@bazilio2010
Мужчина

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

Задача, которую надо решить с помощью jquery.
Нужно чтобы вывелось 123, 123, 123, а выводится только 123.
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
$('table tr:nth-child(n+4)').css('display', 'none');

что соответствует 4 и следующим элементам внутри каждого table. Ваш же код берет все tr на странице после второго.
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Вот настолько всё просто будет: showFirstHideLast('table', 'tr', 3);.

Ну, почти:

function showFirstHideLast(containerSelector, itemSelector, hideFrom) {
  $(containerSelector).each((_, n) => {
    $(itemSelector, n).show().slice(hideFrom).hide();
  });
}

или

function showFirstHideLast(containerSelector, itemSelector, hideFrom) {
  document.querySelectorAll(containerSelector).forEach(n => {
    n.querySelectorAll(itemSelector).forEach((m, i) => {
      m.hidden = i >= hideFrom;
      // или
      m.style.display = i < hideFrom ? '' : 'none';
      // или (в стили надо будет добавить .hidden { display: none; })
      m.classList.toggle('hidden', i >= hideFrom);
    });
  });
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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