97 Stimmen

Entfernen von HTML-Elementstilen über Javascript

Ich versuche, den Wert des Inline-Style-Tags eines Elements zu ersetzen. Das aktuelle Element sieht wie folgt 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 alle, dass Stil Zeug zu entfernen, so dass es durch seine Klasse als es Inline-Stil gestylt ist. Ich habe versucht, delete element.style; und element.style = null; und element.style = ""; ohne Erfolg. Mein aktueller Code bricht an diesen Anweisungen ab. Die gesamte Funktion sieht wie folgt 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 die Meldung wird nie ausgelöst und der Hintergrund bleibt gleich. Sieht jemand irgendwelche Probleme? Vielen Dank 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");
}

199voto

cloudhead Punkte 15075

Können Sie einfach tun:

element.removeAttribute("style")

76voto

Sergio Punkte 973

In JavaScript:

document.getElementById("id").style.display = null;

In jQuery:

$("#id").css('display',null);

12voto

Rony Punkte 9033
getElementById("id").removeAttribute("style");

wenn Sie jQuery verwenden, dann

$("#id").removeClass("classname");

5voto

gapple Punkte 3404

Das Attribut class kann mehrere Stile enthalten, so dass Sie es wie folgt angeben könnten

<tr class="row-even highlight">

und eine String-Manipulation durchführen, um 'highlight' aus element.className zu entfernen

element.className=element.className.replace('hightlight','');

Die Verwendung von jQuery würde dies vereinfachen, da Sie über die Methoden

$("#id").addClass("highlight");
$("#id").removeClass("hightlight");

die es Ihnen ermöglichen würde, die Hervorhebung einfach umzuschalten

5voto

ßãlãjî Punkte 6434

Entfernen removeProperty

var el=document.getElementById("id");

el.style.removeProperty('display')

console.log("display removed"+el.style["display"])

console.log("color "+el.style["color"])

<div id="id" style="display:block;color:red">s</div>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X