Ich versuche, den Inline-Style-Tag-Wert eines Elements zu ersetzen. Das aktuelle Element sieht folgendermaßen aus:
`<tr class="row-even" style="background: red none repeat scroll 0% 0%; position: relative; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" id="0000ph2009-06-10s1s02">`
und ich möchte all diese Stilelemente entfernen, damit sie eher nach Klasse als nach Inline-Stil gestaltet sind. Ich habe versucht, element.style zu löschen. und element.style = null; und element.style = ""; umsonst. Mein aktueller Code bricht bei dieser Anweisung ab. Die ganze Funktion sieht folgendermaßen aus:
function unSetHighlight (index) {
if(index < 10)
index = "000" + (index);
else if (index < 100)
index = "000" + (index);
else if(index < 1000)
index = "0" + (index);
if(index >= 1000)
index = index;
var mainElm = document.getElementById('active_playlist');
var elmIndex = "";
for(var currElm = mainElm.firstChild; currElm !== null; currElm = currElm.nextSibling){
if(currElm.nodeType === 1){
var elementId = currElm.getAttribute("id");
if(elementId.match(/\b\d{4}/)){
elmIndex = elementId.substr(0,4);
if(elmIndex == index){
var that = currElm;
//that.style.background = position: relative;
}
}
}
}
clearInterval(highlight);
alert("cleared Interval");
that.style.background = null;
alert("unSet highlight called");
}
Das clearInterval funktioniert, aber der Alarm wird nie ausgelöst und der Hintergrund bleibt gleich. Hat jemand irgendwelche Probleme gesehen? Danke im Voraus...
function unSetHighlight(index){
alert(index);
if(index < 10)
index = "000" + (index);
else if (index < 100)
index = "000" + (index);
else if(index < 1000)
index = "0" + (index);
if(index >= 1000)
index = index;
var mainElm = document.getElementById('active_playlist');
var elmIndex = "";
for(var currElm = mainElm.firstChild; currElm !== null; currElm = currElm.nextSibling){
if(currElm.nodeType === 1){
var elementId = currElm.getAttribute("id");
if(elementId.match(/\b\d{4}/)){
elmIndex = elementId.substr(0,4);
alert("elmIndex = " + elmIndex + "index = " + index);
if(elmIndex === index){
var that = currElm;
alert("match found");
}
}
}
}
clearInterval(highlight);
alert("cleared Interval");
that.removeAttribute("style");
//that.style.position = "relative";
//reColor();
alert("unSet highlight called");
}
javascript
html
dom
styles
Danwoods
quelle
quelle
Antworten:
Sie können einfach tun:
quelle
element.style.cssText = null
was ähnlich ist.style
AttributIn JavaScript:
In jQuery:
quelle
Invalid argument
verursachen oder dazu zu führen, dass das Element in IE> = 9 vollständig verschwindet. Die EinstellunggetElementById("id").style.display = ''
als leere Zeichenfolge scheint in allen Browsern zu funktionieren.$("#id").css('display', '');
$("#id").css('display','none');
CSSStyleDeclaration.removeProperty()
was imho viel sauberer ist als eine Nullzuweisung. Siehe developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/…Wenn Sie jQuery verwenden, dann
quelle
Das Klassenattribut kann mehrere Stile enthalten, sodass Sie es als angeben können
Führen Sie eine Zeichenfolgenmanipulation durch, um "Hervorhebung" aus element.className zu entfernen
Die Verwendung von jQuery würde dies vereinfachen, da Sie über die Methoden verfügen
Dadurch können Sie die Hervorhebung einfach umschalten
quelle
Verwenden
particular_node.classList.remove("<name-of-class>")
Für natives Javascript
quelle
In jQuery können Sie verwenden
quelle
Stil vollständig entfernen, nicht nur auf NULL setzen
quelle