2016-09-28 65 views
0

我想在css樣式內容上顯示數據。我有這樣的代碼:將數組添加到jquery中的css'content'

if (ext){ 
    switch (ext.toLowerCase()) 
    { 
     case 'doc': pos = 'doc'; break; 
     case 'bmp': pos = 'bmp'; break;      
     case 'jpg': pos = 'jpg'; break; 
     case 'jpeg': pos = 'jpeg'; break; 
     case 'mp3': pos = 'mp3'; break; 
     case 'avi': pos = 'avi'; break; 
     case 'wmv': pos = 'wmv'; break; 
     case 'flv': pos = 'flv'; break; 
     case 'pdf': pos = 'pdf'; break; 
     case 'txt': pos = 'txt'; break; 
     case 'xls': pos = 'xls'; break; 
     case 'rar': pos = 'rar'; break; 
     case 'zip': pos = 'zip'; break; 
     default: pos = 'doc'; break; 
    }; 
    fileIcon:after.css({content:'pos'}) 
}; 

});

我該怎麼讓這個case data寫CSS:

.fileIcon:after 
{ content: ""; 
} 

決定:https://jsfiddle.net/e9wjzqjd/3/如果需要有人

回答

3

你可以一個新<style>標籤附加到<head>

var cssRule ='.fileIcon:after{ content:"' + pos + '";}'; 
$('<style>').text(cssRule).appendTo('head'); 

你不能直接訪問像這樣的僞類在DOM使用腳本

+0

完美照常 – gaetanoM

+0

對不起,你能證明應該如何在我的例子? https://jsfiddle.net/e9wjzqjd/ – TriSTaR

+1

需要爲每個添加額外的類(或id),請參閱https://jsfiddle.net/e9wjzqjd/1/檢查鏈接,可以看到應用的規則 – charlietfl

2

一個更好的解決方案是使用數據屬性,而不是寫一個CSS規則

document.getElementById("x").setAttribute("data-type", "pos");
div[data-type]:after { 
 
\t content: attr(data-type); 
 
}
<div id="x" data-type=""></div>