alexjet73
@alexjet73

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

Как при помощи JS создать CSS Selector для элемента имея на него ссылку? Т.е. есть ссылка на элемент, и требуется сформировать на него CSS Selector, который при помещении его в document.querySelector вызовет его.
Думал опираться на id и class, но бывают элементы без атрибутов вообще, либо повторяющиеся классы.
  • Вопрос задан
  • 259 просмотров
Решения вопроса 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-* атрибуты
Ответ написан
Ваш ответ на вопрос

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

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