2013-10-13 25 views
1

例如: 我想身體的背景顏色,是目前黃,將其更改爲藍色:我可以將JavaScript和方法的屬性鏈接在一起嗎?

document.body.style.backgroundColor = document.body.style.backgroundColor.replace("yellow", "blue"); 

它不工作,爲什麼?那我該怎麼改變使用JavaScript身體的背景顏色?主要的問題是,爲什麼我不能document.body.style.backgroundColor

+1

是文檔正文的背景色確實黃色的?請向我們展示您正在使用的代碼的JSFiddle –

+1

請首先解釋如何將顏色設置爲黃色。你可以在任何字符串值上使用'.replace()',但'style.backgroundColor'屬性實際上被報告爲字符串'「yellow」'?如果你在你的樣式表中設置了顏色,'style.backgroundColor'會返回一個空字符串。另外,如果你只是想將它設置爲藍色,爲什麼不直接設置而不是試圖使用'.replace()'? 'document.body.style.backgroundColor =「blue」;' – nnnnnn

回答

1

以下使用.replace方法就足夠了:

document.body.style.backgroundColor = 'blue'; 

在你的代碼,如果backgroundColoryellow它將替換爲blue。如果這是您所需要的,我認爲在更換之前使用toLowerCase()方法會更好。

document.body.style.backgroundColor = 
document.body.style.backgroundColor.toLowerCase().replace("yellow", "blue"); 

還可以使用正則表達式(如通過@nnnnnn建議),用於區分大小寫替換作爲;

document.body.style.backgroundColor = 
document.body.style.backgroundColor.replace(/yellow/i, "blue"); 
+0

實際上,我改變背景顏色的不同。我需要通過引用前一個值來改變背景顏色。主要問題是爲什麼我不能在我的財產上使用.replace方法? – dramasea

+0

您可以使用它,並確保它是'黃色',因爲js區分大小寫。嘗試類似'document.body.style.backgroundColor.toLowerCase()。replace(「yellow」,「blue」);' – Kaf

+0

不區分大小寫替換更容易:'.replace(/ yellow/i,「blue」) '。 – nnnnnn

0

當然,你可以檢查此琴http://jsfiddle.net/thefourtheye/PexeK/

<body style="background-color:yellow"> 
    <input type="button" onclick="changeColor()" value="Change Color" /> 
</body> 
<script> 
    function changeColor() { 
     document.body.style.backgroundColor = document.body.style.backgroundColor.replace("yellow", "blue"); 
    } 
</script> 
相關問題