获取子元素的父元素的父元素的子元素,使其背景色改变

158 阅读1分钟

最近遇到一个问题,想让左侧导航栏子元素被选中时父元素也高亮,本身项目是用layui + jquery写的,一开始想用jquery通过地址获取子元素标签

let url = location.href.split('/').slice(3).join('/');
let link = $('.layui-nav-child a[href="' + url + '"]');
link.addClass('layui-this');

但发现浏览器输出的值不是想要的值,一度怀疑是不是输出出问题了,后面尝试href = url ,拼接了好久,还是不行,实在没想通怎么写,用原生的话

document.querySelector("#xxx a[href = 'xxx']")

可以直接获取到对应选中子元素,但如果把'xxx'换成字符串,尝试许久不知道怎么拼接,输出内容一直为空,感觉是我太菜了。 最后灵光一闪,高亮不是有个layui-this属性嘛,那我直接选中它就行了,在层层往上,找到它的父元素,再找到父元素下的子元素,不就可以了嘛

document.querySelector(".layui-this").parentNode.parentNode.parentNode.childNodes[1].style.backgroundColor = '#009688'

然后终于成功了,这边真想diss下,jquery真不行,总能给我输出一堆奇奇怪怪的东西,关键是还不知道怎么来的