使用纯javascript获取伪元素内容的实际文本内容

时间:2017-09-25 13:47:35

标签: javascript html css

我能够使用window.getComputedStyle('element', ':before').getPropertyValue('content');获取伪元素内容的文本/内容。但是,它返回一个用双引号括起来的字符串。我希望它返回没有引号的实际字符串,所以我尝试使用valueOf(),但它给了我相同的结果。在创建自己的方法之前,我想知道是否有现有的方法。谢谢!

2 个答案:

答案 0 :(得分:1)

既然你说你已经得到了字符串,但是有了引号,那就这样做:

var t = '"hello"'; // here put your text resulting from your prev code
console.log(t);

t = t.replace(/"/g, '');
console.log(t);

答案 1 :(得分:1)

包含引号表示它是一个文字字符串。这是必要的,因为CSS content属性可以包含表达式,如:

{ content: attr(class) }

{ content: "(" attr(class) ")" }

..它将动态检索元素的class属性并显示该属性。在第二种情况下,它将用括号括起来。

当您使用.getPropertyValue('content')检索属性值时,您实际上会将该表达式作为返回值,在第一种情况下,该值将为attr(class)而不带引号。

现在,如果您确定您的属性值是字符串文字,则可以解包该字符串。

我建议:

JSON.parse(window.getComputedStyle('element', ':before').getPropertyValue('content'));