Лучший способ вложить Javascript ближе всего (не JQuery) - PullRequest
0 голосов
/ 18 мая 2018

Я использую vanilla javascript , без jQuery.

В моем коде у меня есть что-то похожее на это:

item.closest('ul').closest('li').closest('ul').classList.add('active');

Хотя это работает, это не таквыглядите так мило.Я повторяю closest три раза.

Возможно ли в этом случае что-то умнее?

1 Ответ

0 голосов
/ 18 мая 2018

Не существует стандартного способа сделать это короче.

Вы можете:

  1. Добавить класс к элементу, который вы пытаетесь выбрать.Это сделает ваш селектор похожим на это: item.closest('ul.myClass').classlist.add('active')
  2. Создайте функцию, которая обернет создание цепочки closest:

    function closestChain(item) {
        return Array.from(arguments).reduce((acc, val) => {
            return acc.closest(val);
        });
    }
    
    closestChain(item, 'ul', 'li', 'ul').classlist.add('active');
    
  3. Или вы можете подождать имеет CSS-селектор , который будет доступен
...