我有一個包含XML的HTML頁面。使用Javascript,可以在用戶點擊按鈕時更改XML屬性。 (到目前爲止,一切正常)在使用Javascript更改HTML元素後,如何刷新HTML元素的樣式?
但是,被鏈接的CSS中使用了被更改的屬性來確定元素的背景顏色。當屬性值更改時,樣式不刷新,因此顏色不會更改。
我可以改變javascript來改變顏色,但這會涉及硬編碼的顏色,並部分地挫敗了使用CSS的點。
所以,在我看來,我需要做的兩件事情之一,我無法弄清楚如何做到既:
- 讀取CSS的顏色,然後用它分配javascript
- 以某種方式使用JavaScript將CSS重新應用於文檔。
哪種方法更好?我認爲第二種更容易,除非有沒有我沒有想到的副作用。而且,無論哪種方法更好,如何做?
我的CSS包含:
*[cleared=true] {
background:lightgrey;
}
我的XML看起來是這樣的:
<Transfer ID="31266" Date="2015-04-14" Cleared="false">
<AccountCharge Account="Unplus">-826.20</AccountCharge>
<AccountCharge Account="Amex">826.20</AccountCharge>
<TransactionID>1504140662984782</TransactionID>
</Transfer>
我的JavaScript:
function Reconcile(Element_ID){
try {
var c=document.getElementById(Element_ID);
c.setAttribute('Cleared','True');
}
catch(e) {
alert(e.description);
}
}
我已經嘗試將修改'Cleared'的腳本更改爲'Date',並且我可以看到日期更改。 '清除'屬性不直接由CSS顯示,但用於設置其他元素和/或屬性的格式。
在加載頁面之前更改'清除'的值具有我期望的效果 - CSS會導致我期望的格式。但是,在頁面加載後,當javascript更改'清除'的值時,格式化中不會發生可見的更改。
你能在這裏分享一些代碼,你使用的是什麼屬性,你怎麼改變它。 –
你確定屬性值肯定正在更新嗎?正如Franky所說,請提供您的代碼。 – Shaggy
難道問題出在XML和區分大小寫(以及CSS中的小寫選擇器)嗎? – Shikkediel