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
谢谢你的回答!