!important
使用内联样式覆盖其他所有内容的事实。所以,你的算法应该:
- 存储以前的内联设置。到目前为止,最简单的方法就是存储
element.style.cssText
;
- 然后设置你的冻结值;
- 然后恢复以前的设置(再次,通过设置
element.style.cssText
)。
===(已编辑,因此我可以在代码中添加解决方案并接受答案)
好的,我按照你说的做了,效果很好:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div>
<img id="myimg" src="http://i.imgur.com/8eos7vW.jpg" height="200" style="height:300px;"/>
<img id="myimg2" src="http://i.imgur.com/8eos7vW.jpg" height="200"/>
<img id="myimg3" src="http://i.imgur.com/8eos7vW.jpg"/>
</div>
<script>
$('div').append("<BR>element height: " + document.getElementById('myimg').height + "px");
top.backupcss = document.getElementById('myimg').style.cssText;
top.backupcss2 = document.getElementById('myimg2').style.cssText;
top.backupcss3 = document.getElementById('myimg3').style.cssText;
$('div').append("<BR>element.style.cssText: " + top.backupcss);
$('div').append("<BR>element.style.cssText (2): " + top.backupcss2);
$('div').append("<BR>element.style.cssText (3): " + top.backupcss3);
$("#myimg").css({"width": "10px", "height": "10px"});
$("#myimg2").css({"width": "10px", "height": "10px"});
$("#myimg3").css({"width": "10px", "height": "10px"});
setTimeout(function(){
document.getElementById('myimg').style.cssText = top.backupcss;
document.getElementById('myimg2').style.cssText = top.backupcss2;
document.getElementById('myimg3').style.cssText = top.backupcss3;
},10000);
</script>
!important 位不起作用:如果我添加!important
到.css()
调用中,它会完全停止工作。