如何使用 JavaScript 获取 DOM 元素的 ::before 内容?

Posted

技术标签:

【中文标题】如何使用 JavaScript 获取 DOM 元素的 ::before 内容?【英文标题】:How to get a DOM element's ::before content with JavaScript? 【发布时间】:2017-11-04 15:22:19 【问题描述】:

我想知道是否可以获取一个DOM元素的::before内容,这是由CSS3设置的。

我已经尝试了一些方法,但我仍然无法做到,所以我很困惑!

// https://rollbar.com/docs/

const links = document.querySelectorAll(`ul.image-list a`);

links[0];
// <a href="/docs/notifier/rollbar-gem/" class="ruby">::before Ruby</a>

links[0];
//

links[0].textContent;
//"Ruby"

links[0].innerText;
// "Ruby"

links[0].innerhtml;
// "Ruby"

// ??? links[0]::before;

是这样的:

【问题讨论】:

这个问题怎么没有更多的票??? getComputedStyle(links[0], '::after').getPropertyValue('content'); 【参考方案1】:

":before"作为第二个参数传递给window.getComputedStyle()

console.log(getComputedStyle(document.querySelector('p'), ':before').getPropertyValue('content'));
p::before,
p::after 
  content: ' Test ';
&lt;p&gt;Lorem Ipsum&lt;/p&gt;

【讨论】:

【参考方案2】:

getComputedStyle() & getPropertyValue()

getComputedStyle(document.querySelector('span.search-box'), '::after').getPropertyValue('content');

【讨论】:

以上是关于如何使用 JavaScript 获取 DOM 元素的 ::before 内容?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中DOM,以及如何获取元素

如何在 javascript 中获取 DOM 元素的 HTML

如何获取由 querySelectorAll() 方法 (javascript) 生成的 DOM 数组的每个元素的索引?

JavaScript DOM基础

如何获取与 DOM 元素关联的事件?

使用 JavaScript 获取 2 个 DOM 元素之间的相对位置