Kann mir jemand sagen, wie ich eine Klasse auf einem Element nur mit JavaScript entfernen kann? Bitte geben Sie mir keine Antwort mit jQuery, da ich es nicht verwenden kann und keine Ahnung davon habe.
- Wie kann ich die Klasse eines Elements mit JavaScript ändern? (33 Antworten )
Antworten
Zu viele Anzeigen?Die richtige und übliche Vorgehensweise ist die Verwendung von classList
. Es ist jetzt breite Unterstützung in den neuesten Versionen der meisten modernen Browser :
ELEMENT.classList.remove("CLASS_NAME");
remove.onclick = () => {
const el = document.querySelector('#el');
if (el.classList.contains("red")) {
el.classList.remove("red");
}
}
.red {
background: red
}
<div id='el' class="red"> Test</div>
<button id='remove'>Remove Class</button>
Dokumentation: https://developer.mozilla.org/en/DOM/element.classList
document.getElementById("MyID").className =
document.getElementById("MyID").className.replace(/\bMyClass\b/,'');
wobei MyID
ist die ID des Elements und MyClass ist der Name der Klasse, die Sie entfernen möchten.
UPDATE : Um Klassennamen zu unterstützen, die einen Bindestrich enthalten, wie z. B. "My-Class", verwenden Sie
document.getElementById("MyID").className =
document.getElementById("MyID").className
.replace(new RegExp('(?:^|\\s)'+ 'My-Class' + '(?:\\s|$)'), ' ');
Hier ist eine Möglichkeit, diese Funktionalität direkt in alle DOM-Elemente einzubauen:
HTMLElement.prototype.removeClass = function(remove) {
var newClassName = "";
var i;
var classes = this.className.split(" ");
for(i = 0; i < classes.length; i++) {
if(classes[i] !== remove) {
newClassName += classes[i] + " ";
}
}
this.className = newClassName;
}
div.classList.add("foo");
div.classList.remove("foo");
Mehr unter https://developer.mozilla.org/en-US/docs/Web/API/element.classList
- See previous answers
- Weitere Antworten anzeigen
3 Stimmen
document.getElementById("theID").removeAttribute("class")