@historydev
Редактирую файлы с непонятными расширениями

Как получить элемент-родитель?

Доброе утро. Скажите пожалуйста как получить элемент-родитель самый первый, не родитель e.target.parentNode, т.к. уровней очень много, придётся писать parentNode.parentNode и т.д., а самый первый блок в котором все наследования, если грубо-говоря чтобы я получил: document => selector
то есть в данном случае .select в котором все остальные.
const UseMenu = ({element}) => element.map(el => (
        <ul className='select'>
            <li> {el.title} </li> <i className='fas fa-chevron-down' />
            <div className="selectContent">
                <li>
                    {el.children ? el.children.map(ch => (
                        <ul className='select'>
                            <li> {ch.title} </li> <i className='fas fa-chevron-down' />
                            <div className="selectContent">
                                <li>
                                    {ch.children ? ch.children.map(ch2 => (<li>{ch2.title}</li>)):''}
                                </li>
                            </div>
                        </ul>
                    )):''}
                </li>
            </div>
        </ul>
    ));

Спасибо.
  • Вопрос задан
  • 956 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Метод Element.closest() возвращает ближайший родительский элемент (или сам элемент), который соответствует заданному CSS-селектору или null, если таковых элементов вообще нет.

https://developer.mozilla.org/ru/docs/Web/API/Elem...

В вашем варианте можно использовать

const farest (element, selector, secondCall) {
  const parent = element.closest(selector)
  return parent ? farest(parent, selector, true) : secondCall && element
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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