admin管理员组文章数量:1134239
If I have the following in my html:
<div style="height:300px; width:300px; background-color:#ffffff;"></div>
And this in my css style sheet:
div {
width:100px;
height:100px;
background-color:#000000;
}
Is there any way, with javascript/jquery, to remove all of the inline styles and leave only the styles specified by the css style sheet?
If I have the following in my html:
<div style="height:300px; width:300px; background-color:#ffffff;"></div>
And this in my css style sheet:
div {
width:100px;
height:100px;
background-color:#000000;
}
Is there any way, with javascript/jquery, to remove all of the inline styles and leave only the styles specified by the css style sheet?
Share Improve this question asked Aug 4, 2009 at 20:14 MattMatt 5,59523 gold badges84 silver badges122 bronze badges7 Answers
Reset to default 170$('div').attr('style', '');
or
$('div').removeAttr('style');
(From Andres's Answer)
To make this a little smaller, try this:
$('div[style]').removeAttr('style');
This should speed it up a little because it checks that the divs have the style attribute.
Either way, this might take a little while to process if you have a large amount of divs, so you might want to consider other methods than javascript.
Plain JavaScript:
You don't need jQuery to do something trivial like this. Just use the .removeAttribute()
method.
Assuming you are just targeting a single element, you can easily use the following: (example)
document.querySelector('#target').removeAttribute('style');
If you are targeting multiple elements, just loop through the selected collection of elements: (example)
var target = document.querySelectorAll('div');
Array.prototype.forEach.call(target, function(element){
element.removeAttribute('style');
});
Array.prototype.forEach()
- IE9 and above / .querySelectorAll()
- IE 8 (partial) IE9 and above.
$('div').removeAttr('style');
If you need to just empty the style
of an element then:
element.style.cssText = null;
This should do good. Hope it helps!
I was using the $('div').attr('style', '');
technique and it wasn't working in IE8.
I outputted the style attribute using alert()
and it was not stripping out inline styles.
.removeAttr
ended up doing the trick in IE8.
This can be accomplished in two steps:
1: select the element you want to change by either tagname, id, class etc.
var element = document.getElementsByTagName('h2')[0];
- remove the style attribute
element.removeAttribute('style');
You could also try listing the css in the style sheet as !important
本文标签:
版权声明:本文标题:jquery - How can I erase all inline styles with javascript and leave only the styles specified in the css style sheet? - Stack O 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736830016a1954655.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论