@Aleksey100

Как получить ближайшего родителя с уникальным селектором?

Здравствуйте.

Подскажите пожалуйста как на нативном js можно получить уникального родителя?
Например для элемента li уникальным родителем будет .second_block
А для #text уникальным родителем будет body

<body>
<div class='content'>
   <p id='text'>some text</p>
</div>
<div class='second_block'>
   <div class='content'>
      <p>some text 2</p>
      <ul>
         <li>list 1</li>
      </ul>
   </div>
</div>
</body>
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В цикле поднимаетесь по родителям элемента и проверяете каждый на "уникальность".
Для id всё просто, если id есть, то он уникален.
Для тэга тоже несложно, getElementsByTagName и проверяете список на количество элементов.
Хуже всего для классов. Тут надо перебрать все их сочетания как отдельно, так и с именем тэга.
А есть ещё и data-атрибуты, которые также можно использовать в селекторах в сочетании с классами и именем тэга.
Ну и самое неприятное, на динамических страницах то, что было "уникальным" может перестать им быть в любой момент. Достаточно, например, убрать класс, обеспечивавший уникальность.

Кстати, для li у вас уникальным родителем будет ul.
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
https://codepen.io/KorniloFF/pen/XOgVYz?editors=1011
UPD - подправил результат, сейчас вроде всё, как в вопросе.
https://codepen.io/KorniloFF/pen/NogBQV?editors=1011
Ответ написан
Ваш ответ на вопрос

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

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