una tablas propiedades modificar getelementsbyclass elementos dinamicas con clase cambiar javascript html dom styles

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");