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

Как узнать, что ul список состоит из ссылок?

Как с помощью JS отличить список такого вида:
<ul>
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
</ul>


от такого:
<ul>
  <li>Some text</li>
   <li>More some text</li>
   <li>I need more text</li>
</ul>


и от такого:
<ul>
  <li>Some text <a href="#">and some link</a></li>
   <li>More some text</li>
   <li>I need more text</li>
</ul>
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const isOnlyLinks = ul => Array
  .from(ul.querySelectorAll(':scope > li'))
  .every(({ childNodes: n }) => !~-n.length && n[0] instanceof HTMLAnchorElement);

или

const isOnlyLinks = ul =>
  Array.prototype.every.call(
    ul.children,
    ({ childNodes: [ a, b ] }) => a && a.tagName === 'A' && !b,
  );
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
сам принцип проверок можно использовать, но вообще решение довольно "грязное"
Ответ написан
Ваш ответ на вопрос

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

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