2017-09-25 68 views
0

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

回答

1

既然你说你已经得到了弦,但引号,然后执行:

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

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

+0

真棒!谢谢! – iamLinker

+0

请记住接受答案。 – jack

1

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

{ content: attr(class) } 

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

..这将动态检索元素的属性class并显示。在第二种情况下,它将被包裹在括号内。

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

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

我建议:

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