2013-05-10 98 views
1

我想用這段代碼改變我的div背景,但不工作。我想將它添加到我的嵌入CSS(第四鏈接)。它會增加剩餘的規則。用javascript插入css規則

var hur = new Date(); 
    var dyng = hur.getHours() 
    if(dyng > 6 && dyng < 18){ 
    document.styleSheets[3].cssRules[0].style.background="url('/blog/themes/custom/img/sky.jpg')" 
    }else{ 
    document.styleSheets[3].cssRules[0].style.background="url('/blog/themes/custom/img/night.jpg')" 
    } 

CSS

#test { 
    background-size: cover; 
    width: 100%; 
    height: 220px; 
} 
+0

您可以使用jQuery添加CSS規則'$( 「#測試」),CSS({ '背景': 'image.jpg的'}));' – 2013-05-10 16:16:15

回答

3

這通常可以以簡單的方式通過使用一對jQuery方法實現:

.addClass() 
.removeClass() 

在普通的JavaScript溶液相同的功能也可以用一對功能:

element.setAttribute ("class", "CSS class name"); 
element.removeAttribute ("class", "CSS class name"); 
+1

還是在普通的JavaScript與'className'屬性。 – 2013-05-10 16:19:28

+5

請停止使用jQuery解決方案來解決純javascript問題。 – Axel 2013-05-10 16:19:35

+0

你需要解釋更多,因爲他可能也需要刪除類以及。 – Cam 2013-05-10 16:19:52

2

使用JavaScript修改CSS不是一個好主意。

最好是在CSS中定義所有樣式並使用JavaScript選擇這些規則的通過添加/刪除類來應用。

您可以使用DOM元素的.className屬性(但我會推薦使用框架)。

2

您也可以使用setAttribute函數。

element.setAttribute('class', 'class name'); 
+0

我以前沒有想過這個簡單的方法。謝謝 – enix 2013-05-12 15:53:22