我使用香草javascript,没有jQuery。

在我的代码中,我看起来像这样:

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


虽然有效,但看起来并不那么好。我重复closest 3次。

在这种情况下,有可能使事情变得更聪明吗?

最佳答案

没有使它更短的标准方法。

您可以:


将一个类添加到您要选择的元素中。那会使您的选择器看起来像这样:
item.closest('ul.myClass').classlist.add('active')
创建一个包装closest链创建的函数:

function closestChain(item) {
    return Array.from(arguments).reduce((acc, val) => {
        return acc.closest(val);
    });
}

closestChain(item, 'ul', 'li', 'ul').classlist.add('active');

或者您可以等待has CSS selector可用

关于javascript - 嵌套最接近javascript的更好方法(不是jQuery),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50406888/

10-13 02:59