Tengo un elemento de menú que se parece a esto.

<ul>
<li><a href="id=1">HOME</a></li>
<li><a href="id=2">News</a>
    <ul>
        <li><a href="id=3">News Archive</a></li>
    </ul>
</li>
</ul>

Quiero que se vea como esta

<ul>
<li><a href="id=1">HOME</a></li>
<li class="hassub"><a href="id=2">News</a>
    <ul>
        <li><a href="id=3">News Archive</a></li>
    </ul>
</li>
</ul>

De modo que si el li tiene un hijo, entonces tendrás una clase de hassub.

He intentado añadir esto con jQuery, ver violín. Pero es agregar la clase a todos ul li. A donde voy mal?

InformationsquelleAutor ak85 | 2012-08-01

3 Comentarios

  1. 1

    No es necesario comprobar si la ul existe para agregar la clase de padre a padre de li, usted puede apenas objetivo de que el niño ul en el selector de jQuery. Aquí está un ejemplo:

    //Add Class to LI with Child UL (Level 1)
    $('.menuDiv li ul').parent().addClass('hasChild');

    Si el ul no es encontrado, el código no se activará. Después de agregar la clase a todos los elementos de la lista, usted puede simplemente apuntar solamente al primer hijo de anclaje (si quieres) utilizando el >: selector

    .menuDiv li.hasChild > a

    … o destino de todos los <ul> con la li clase principal:

    .menuDiv li.hasChild ul

    Puede comprobar en el enlace de abajo para ver ejemplos en vivo (también con el nivel 2 de las listas) y más detalles sobre el código:

    http://html-tuts.com/add-class-to-parent-li-if-has-child-ul/

Dejar respuesta

Please enter your comment!
Please enter your name here