2012-03-25 57 views
3

是否可以使用addRule或insertRule來傳遞id選擇器? ie:addRule/insertRule與css選擇器

document.styleSheets[1].addRule('div #3', 'font: 14px verdana'); 

哪個會爲div創建規則?

或者是否有任何已知的解決方法?

+0

你試過了嗎?根據我所看到的文檔,這應該可以正常工作 - 假設JavaScript允許您使用無效的ID進行操作。 #3無效,因爲ID必須以字母開頭。 – 2012-03-25 22:03:33

+2

我做了一些應該爲你工作的東西:https://gist.github.com/yckart/5563717 – yckart 2013-05-12 14:17:54

回答

8

您的代碼無效,因爲選擇器無效。 ID選擇器#3無效,因爲ID選擇器cannot begin with a digit

爲了解決這個問題,使用哪個可以有效選擇器進行選擇的ID,例如#three

document.styleSheets[1].addRule('div #three', 'font: 14px verdana'); 
+1

,我很笨。謝謝 :) – 2012-03-25 22:04:19

2

或者,也可以嘗試此方法:http://pp19dd.com/2012/01/add-inline-css-or-remote-css-file-with-javascript/

function css_add_file(css_url) { 
    var c = document.createElement('link'); 
    c.type = 'text/css'; 
    c.rel = 'stylesheet'; 
    c.href = css_url; 
    c.media = 'screen'; 
    c.title = 'dynamicLoadedSheet'; 
    document.getElementsByTagName("head")[0].appendChild(c); 
} 

它將允許您或多或少地注入CSS規則,而無需對其結構進行微觀管理。

例如:css_add_inline("div#three { font-size:14px; font-family: Verdana; }");