Jquery abre todos los padres ul con el enlace de la lista

I have a menu structure like:

<ul id="menu">
    <li>
        <a href="javascript:void(0)">HR</a>
        <ul>
            <li><a href="javascript:void(0)">Address</a>
                <ul>
                    <li><a href="listcountrymaster.aspx">Country</a></li>
                    <li><a href="listregionmaster.aspx">Region</a></li>
                </ul>
            </li>

            <li><a href="javascript:void(0)">Assets</a>
                <ul>
                    <li><a href="ListVendorMaster.aspx">Vendor</a></li>
                     <li><a href="Listassetmaster.aspx">Asset</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

what I want to do is: I want to open all parent <ul> above the link with href="ListVendorMaster.aspx"

something I have tried is:

var openmenu = 'ListVendorMaster.aspx';
$('#menu ul').hide();
if(openmenu)
{
    $('a[href="'+openmenu+'"]').closest('ul').show();
}

with this I am able to open only one level parent ul.

gracias

preguntado el 03 de mayo de 12 a las 14:05

2 Respuestas

En lugar de closest() utilizado parents().

jQuery padres()

contestado el 03 de mayo de 12 a las 14:05

It would be wise to note that "closest" finds the first match where "parents" finds all matches. In your case, you want parents. I might also switch $('#menu ul').hide(); - Nick Bork

if(openmenu)
{
    $('a[href="'+openmenu+'"]').parent().parent('ul').show();
}

DEMO

contestado el 03 de mayo de 12 a las 14:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.