Javascript 获取:在内容和打印内容中的特殊字符之前

Javascript 获取:在内容和打印内容中的特殊字符之前,javascript,Javascript,我想从我的:before标签中获取内容。我知道有些人会说它不是一个真正的(伪)元素,但在JS中有一种方法,但有人能帮我在JQ中这样做吗,因为我有多个标记,我想用$进行迭代。每个 下面是我如何在JS中获得内容的 window.getComputedStyle(document.querySelector('i'), ':before').getPropertyValue('content') 我在JQ如何做到这一点? 以下是我尝试过的: $.each($('div'),function(){

我想从我的
:before
标签中获取
内容。我知道有些人会说它不是一个真正的(伪)元素,但在JS中有一种方法,但有人能帮我在JQ中这样做吗,因为我有多个标记,我想用
$进行迭代。每个

下面是我如何在JS中获得
内容的

window.getComputedStyle(document.querySelector('i'), ':before').getPropertyValue('content')
我在JQ如何做到这一点?

以下是我尝试过的:

$.each($('div'),function(){
 $(this).find('i:before').css('content');
});
打印特殊字符? 当我得到
内容时
我想打印它,问题是它是一个特殊字符,我想得到一个真正的代码

我的
内容
的代码如下:
\e002
。所以我想这样打印,而不是
迭代
$。每个($('div i')
而不是
$。每个($('div')
),因此可以避免在迭代器中使用
find()

然后,您可以使用
窗口。getComputedStyle()
上执行以下操作:

window.getComputedStyle(this, ':before').getPropertyValue('content')
然后,您将得到一个Unicode字符串,这就引出了问题的第二部分

您可以使用逐个字符查看此字符串,这为
\e002
提供了以下内容:

  • 三十四
  • 57346
  • 三十四
34
s表示双引号,可以忽略

57346
是十六进制的十进制等价物
e002
。您可以使用将其转换为十六进制

剩下的就是在前面加上
\

因此,我们的代码变成:

$.each($('div i'),function() {
  var s = window.getComputedStyle(this, ':before').getPropertyValue('content'),
      char = '\\' + s.charCodeAt(1).toString(16);

  console.log(char);  // \e002
});
片段:

$。每个($('divi'),函数(){
var s=window.getComputedStyle(此“:before”).getPropertyValue(“内容”),
char='\\'+s.charCodeAt(1).toString(16);
console.log(char);//\e002
});
i:before{
内容:'\e002';
}

我们的斜体节点

:在
不是DOM元素之前,您无法访问它。重复问题:@John Yes您可以访问它我提供了code@ZachButtram它不是重复的,因为它没有显示如何在JQ中执行此操作以及如何打印特殊字符?在
$中。each()
,您可以尝试
window.getComputedStyle(此“:before”).getPropertyValue(“内容”)
。这正是我要找的东西。.不知道
charCodeAt
谢谢你的回答!