我有一个包含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