Wenn ich folgendes in meinem HTML habe:
<div style="height:300px; width:300px; background-color:#ffffff;"></div>
Und das in meinem CSS-Stylesheet:
div {
width:100px;
height:100px;
background-color:#000000;
}
Gibt es eine Möglichkeit, mit Javascript / jquery alle Inline-Stile zu entfernen und nur die im CSS-Stylesheet angegebenen Stile zu belassen?
javascript
jquery
css
inline
Matt
quelle
quelle
.css()
mit einer leeren Zeichenfolge als zweitem Wert nur der benannte Wert aus den Inline-Stilen entfernt, z. B. $ ('div'). Css ('display', ''); entfernt nur die Inline-Anzeigeeigenschaft (falls festgelegt).$('*').removeAttr('style')
zum Zielen auf alles.Einfaches JavaScript:
Sie brauchen jQuery nicht, um so etwas Triviales zu tun. Verwenden Sie einfach die
.removeAttribute()
Methode.Angenommen, Sie zielen nur auf ein einzelnes Element, können Sie auf einfache Weise Folgendes verwenden: (Beispiel)
Wenn Sie auf mehrere Elemente abzielen, durchlaufen Sie einfach die ausgewählte Sammlung von Elementen: (Beispiel)
Array.prototype.forEach()
- IE9 und höher /.querySelectorAll()
- IE 8 (teilweise) IE9 und höher.quelle
Array.prototype.forEach.call
ist der ziemlich gut unterstützte Splat-Operator, der eine Zeile speichert :[... document.querySelectorAll('div')].forEach(div => div.removeAttribute('style'))
.quelle
Ich habe das benutzt
$('div').attr('style', '');
Technik verwendet und sie hat in IE8 nicht funktioniert.Ich habe das style-Attribut mit ausgegeben
alert()
und es wurden keine Inline-Stile entfernt..removeAttr
endete den Trick in IE8.quelle
Wenn Sie nur das
style
eines Elements leeren müssen, dann:element.style.cssText = null;
Dies sollte gut tun. Ich hoffe es hilft!
quelle
element.style.display = null;
Dies kann in zwei Schritten erreicht werden:
1: Wählen Sie das Element, das Sie ändern möchten, entweder nach Tagname, ID, Klasse usw. aus.
var element = document.getElementsByTagName('h2')[0];
element.removeAttribute('style');
quelle
Sie können auch versuchen, das CSS im Stylesheet als! Wichtig aufzulisten
quelle