javascript - 如何获取伪元素?

标签 javascript html pseudo-element

我需要获取 :after 并将其分配给变量。有可能吗?

querySelectorAll 不起作用。

alert(some_div_with_pseudo.querySelectorAll('::after')[0]) // undefined

最佳答案

简短的回答是你不能。还没有。

JavaScript 可以访问 DOM,它是在从 HTML 加载页面时构建的,并在 JavaScript 操作它时进一步修改。

伪元素 由 CSS 生成,而不是 HTML 或 JavaScript。它的存在纯粹是为了给 CSS 一些可以依赖的东西,但这一切都是在 JavaScript 毫不知情的情况下发生的。

这是应该的。在总体方案中,页面以 HTML 开始。 JavaScript 一方面可以用来修改它的行为和操作内容,另一方面 CSS 可以用来控制结果的呈现:

HTML [→ JavaScript] → CSS → Result

您会看到带有伪元素的 CSS 位于末尾,因此 JavaScript 看不到。

另见:

编辑

似乎在现代 JavaScript 中有一个使用 window.getComputedStyle(element,pseudoElement) 的解决方法:

var element = document.querySelector(' … ');
var styles = window.getComputedStyle(element,':after')
var content = styles['content'];

关于javascript - 如何获取伪元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872290/

相关文章:

iphone - 我的页面在 PC 或 Mac 上加载正常,但在装有 iOS 5.1.1 的 iPad 或 iPhone 上完全消失

css - 如何将 CSS 应用于 :before content? 之后的第一个字母

php - 网页的高度没有随着广告的增加而增加,它与容器重叠

javascript - 替换每个 HTML 控件的内容 javascript jquery

jquery - 为什么添加 "helper: "clone";"到这个 ui-draggable 元素会阻止它被拖动?

css - 垂直居中 :before/:after pseudo-elements 的内容

javascript - 如何知道文件是否下载完成?

javascript - Accordion :隐藏/显示 iframe onclick

javascript - 导航到不同路线时清除 redux 状态

javascript - 如何停止运行定时器功能?