问题描述
someSelector:after {
content: attr('data-some-data');
/* ... */
}
在我将此属性更改为其他属性之前,一切正常(该值反映在屏幕上)
document.querySelector('someSelector').dataset.someData = 'some other value';
内容不会在屏幕上更新,但是当我打开DOM资源管理器时,我可以清楚地看到,该属性的值确实已更新。
我尝试通过浏览器控制台手动进行设置,但没有成功。
所有内容都可以在其他浏览器中正常运行,但是在IE中当然可以...
问题
是否可以强制更新此值,以便在更改时将其反映在屏幕上?
解决方法
由于某些未知原因,IE11在修改元素数据集时不会重绘DOM。
但是,如果您必须支持IE11,请使用Element.setAttribute方法,如下所示:
document.querySelector('someSelector').setAttribute('data-some-data','some other value');
将重绘DOM,并应更新伪元素的内容。