Si tengo lo siguiente en mi html:
<div style="height:300px; width:300px; background-color:#ffffff;"></div>
Y esto en mi hoja de estilo CSS:
div {
width:100px;
height:100px;
background-color:#000000;
}
¿Hay alguna forma, con javascript / jquery, de eliminar todos los estilos en línea y dejar solo los estilos especificados por la hoja de estilo css?
javascript
jquery
css
inline
Mate
fuente
fuente
.css()
con una cadena vacía como segundo valor eliminará solo el valor nombrado de los estilos en línea, por ejemplo, $ ('div'). Css ('display', ''); eliminará solo la propiedad de visualización en línea (si está configurada).$('*').removeAttr('style')
para apuntar a todo.JavaScript simple:
No necesitas jQuery para hacer algo trivial como esto. Solo usa el
.removeAttribute()
método.Suponiendo que solo está apuntando a un solo elemento, puede usar fácilmente lo siguiente: (ejemplo)
Si está apuntando a varios elementos, simplemente recorra la colección de elementos seleccionada: (ejemplo)
Array.prototype.forEach()
- IE9 y superior /.querySelectorAll()
- IE 8 (parcial) IE9 y superior.fuente
Array.prototype.forEach.call
es el operador splat bastante bien soportado, lo que ahorra una línea:[... document.querySelectorAll('div')].forEach(div => div.removeAttribute('style'))
.fuente
Estaba usando la
$('div').attr('style', '');
técnica y no funcionaba en IE8.Produje el atributo de estilo usando
alert()
y no eliminaba los estilos en línea..removeAttr
terminó haciendo el truco en IE8.fuente
Si solo necesita vaciar el
style
de un elemento, entonces:element.style.cssText = null;
Esto debería funcionar bien. ¡Espero eso ayude!
fuente
element.style.display = null;
- eso es lo que necesitaba: DEsto se puede lograr en dos pasos:
1: seleccione el elemento que desea cambiar por nombre de etiqueta, id, clase, etc.
var element = document.getElementsByTagName('h2')[0];
element.removeAttribute('style');
fuente
¡También puede intentar incluir el CSS en la hoja de estilo como! Importante
fuente