alexjet73
@alexjet73

Как при помощи JS создать CSS Selector для элемента имея на него ссылку?

Как при помощи JS создать CSS Selector для элемента имея на него ссылку? Т.е. есть ссылка на элемент, и требуется сформировать на него CSS Selector, который при помещении его в document.querySelector вызовет его.
Думал опираться на id и class, но бывают элементы без атрибутов вообще, либо повторяющиеся классы.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
function calculateSelector(element) {
  let selector = '';
  for(let current = element; current?.nodeType === 1; current = current.parentElement) {
    if(current.id) {
      selector = `#${current.id}>${selector}`;
      break;
    }
    const tag = current.tagName.toLowerCase();
    const classes = Array.from(current.classList, cls => `.${cls}`).join('');
    selector = `${tag}${classes}>${selector}`;
  }
  return selector.slice(0, -1);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
data-* атрибуты
Ответ написан
Ваш ответ на вопрос

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

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