从已知链接内选择一个容器DIV
从已知链接内选择一个容器DIV
我正在努力弄清楚如何通过其中包含的链接来选择一个容器。它看起来像这样:
这里有一些文本 我的链接
我知道"我的链接"的值。然而,这个div没有ID或类,并且除了body之外没有包含在任何东西中。
我该如何使用JavaScript来选择这个div元素以便我可以操作它?我已经找到了使用DOM选择链接的方法,但没有外部div。页面上有许多div,所以我不能只是选择div。
非常感谢您的帮助!
如果你只知道一个包含文本“我的链接”的直接子级的div,并且它是一个a元素,你可以通过查找所有的div > a元素,并选择第一个具有该文本的元素来找到它:
const a = [...document.querySelectorAll("div > a")].find(a => a.innerText === "My Link");
(这依赖于几年前NodeList成为可迭代对象的事实;你可能需要对其进行polyfill。)
a现在将是第一个匹配的a元素,如果没有匹配的元素,则为null。
从这里开始,如果你想要该元素的容器,你可以使用closest与CSS选择器。例如:
const x = div.closest("CSS selector here");
...或根据需要使用parentNode/parentElement。