Hola, tengo una complicación y no se me ocurre que hacer, tengo unas listas que por medio de una librería de jQuery las muestra como un árbol de elementos, me doy cuenta que esa librería toma la lista y le hace ajustes y queda algo así:
Código PHP:
<li class="collapsable" id="liAE_0">
<div class="hitarea collapsable-hitarea"></div>
<span class="" id="span_liAE_0">A Agricultura, ganadería, silvicultura y pesca.</span>
<ul style="display: block;">
<li class="expandable">
<div class="hitarea expandable-hitarea "></div>
<span class="">Uno</span>
<ul style="display: none;">
<li><span>A</span></li>
<li class="last"><span>B</span></li>
</ul>
</li>
<li><span>Dos</span></li>
<li class="expandable"><div class="hitarea expandable-hitarea "></div>
<span class="">Tres</span>
<ul style="display: none;">
<li><span>X</span></li>
<li class="last"><span>Y</span></li>
</ul>
</li>
<li class="last"><span>Cuatro</span></li>
</ul>
</li>
Se ve muy nice y todo, pero por hacer una funcionalidad, necesito modificar el LI papá (solo el LI que tiene el ID), para ello identifico su ID y trato de aplicar lo siguiente para cambiar su estilo:
Código PHP:
//idLiRaiz es el ID del LI
//Le agrego una clase más con un estilo definido
var claseOri = $("#"+idLiRaiz).attr("class");
$("#"+idLiRaiz).addClass(claseOri + "invisible");
//Le modifico directamente las propiedades
document.getElementById(idLiRaiz).style.display= 'none';
//lo mismo que lo anterior, pero con jQuery
$("#"+idLiRaiz).css({"color": "green", "font-weight": "bold"});
$("#"+idLiRaiz).css({"display", "none");
Lo que me interesa es que al detectar cierto LI, lo haga invisible en la lista con 'display:none', sin embargo no me toma esa propiedad, ni ninguna otra de las que probé, sin embargo, los nodos hijos, por ejemplo el SPAM que tiene id, si puedo manipularle sus propiedades como color o tamaño, etc. Alguien sabe por que no puedo modificar el LI? gracias de antemano!
PT. Probé hacer invisible un elemento de la lista directamente y no funciona, no es problema de que no consulte correctamente el ID de la LI. Tampoco quiero eliminar al LI del árbol ya que la funcionalidad es una busqueda en el árbol, y si busca con el campo en blanco, muestra de nuevo todos (o eso se supone que hará si lo consigo jeje)