javascript - 嵌套最接近 javascript 的更好方法(不是 jQuery)
问题描述
我使用香草 javascript,没有 jQuery。
在我的代码中,我有一些看起来像这样的东西:
item.closest('ul').closest('li').closest('ul').classList.add('active');
虽然它有效,但它看起来并不那么好。我重复closest
三遍。
在这种情况下有可能做一些更聪明的事情吗?
解决方案
没有标准的方法可以缩短它。
你可以:
- 向您尝试选择的元素添加一个类。这将使您的选择器看起来像这样:
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 选择器可用
推荐阅读
- mysql - root 的 MYSQL 访问被拒绝(pw-reset 不起作用)
- android - Espresso 单元测试在 AWS Device Farm 上失败,但在本地运行
- html - Ionic 直到重新编译 3 次才编译
- swift - 将数据传回 UIPickerView
- java - 如何在 JEditorPane 中为 html 设置超时
- go - 如何在不转义的情况下从 url 获取参数(golang)
- mysql - 收到错误 #1452 - 无法添加或更新子行”
- c# - 在配置文件中的“命名空间”中命名,可以吗?
- swift - Facebook 登录会冻结应用程序,并且不会在 iOS 13 上打开 Facebook 权限视图
- angular - 角度 ng 更新不起作用 - 保存代理的位置超时?