@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>
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const isLinks = Array
  .from(ul.querySelectorAll(':scope > li'))
  .every(n => n.childNodes.length === 1 && n.childNodes[0] instanceof HTMLAnchorElement);

или

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

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект