从已知链接内选择一个容器DIV

15 浏览
0 Comments

从已知链接内选择一个容器DIV

我正在努力弄清楚如何通过其中包含的链接来选择一个容器。它看起来像这样:

  这里有一些文本
  我的链接

我知道"我的链接"的值。然而,这个div没有ID或类,并且除了body之外没有包含在任何东西中。

我该如何使用JavaScript来选择这个div元素以便我可以操作它?我已经找到了使用DOM选择链接的方法,但没有外部div。页面上有许多div,所以我不能只是选择div。

非常感谢您的帮助!

0
0 Comments

如果你只知道一个包含文本“我的链接”的直接子级的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。

0