tablas - modificar elementos html con javascript
eliminar estilos de elemento html a través de javascript (5)
Estoy intentando reemplazar el valor de etiqueta de estilo en línea de un elemento. El elemento actual se ve así:
`<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">`
y me gustaría eliminar todo ese estilo para que esté diseñado por su clase en lugar de su estilo en línea. He intentado eliminar element.style; y element.style = null; y element.style = ""; en vano. Mi código actual se rompe en esta declaración. Toda la función se ve así:
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");
}
clearInterval funciona pero la alerta nunca se dispara y el fondo permanece igual. ¿Alguien ve algún problema? Gracias por adelantado...
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");
}
El atributo de clase puede contener múltiples estilos, por lo que podría especificarlo como
<tr class="row-even highlight">
y hacer la manipulación de cadenas para eliminar ''highlight'' de element.className
element.className=element.className.replace(''hightlight'','''');
Usar jQuery lo simplificaría ya que tienes los métodos
$("#id").addClass("highlight");
$("#id").removeClass("hightlight");
eso le permitiría alternar resaltando fácilmente
En JavaScript:
document.getElementById("id").style.display = null;
En jQuery:
$("#id").css(''display'',null);
Utilizar
particular_node.classList.remove("<name-of-class>")
Para JavaScript nativo
solo puedes hacer:
element.removeAttribute("style")
getElementById("id").removeAttribute("style");
si estás usando jQuery, entonces
$("#id").removeClass("classname");