2017-09-25 101 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'));