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