Quiero agregar una clase al elemento h3 anterior cada vez que se hace clic en cualquiera de los li debajo de él, aquí está mi html:

<div class="list">
    <div class="marketing">
    <h3><a href="#" class="sales"> List I</a></h3>
        <div>
            <ul>
                 <li><a href="#">item 1</a></li>
                 <li><a href="#">item 2</a></li>
                 <li><a href="#">item 3</a></li>
             </ul>
        </div>
    </div>
    <div class="operations">
    <h3><a href="#" class="wise"> List II</a></h3>
        <div>
            <ul>
                 <li><a href="#">item a</a></li>
                 <li><a href="#">item b</a></li>
                 <li><a href="#">item c</a></li>
            </ul>
        </div>
    </div>
</div>

Traté de usar el siguiente script pero en vano.

$('.list li').click(function () {
        $(this)parent().prev('h3').addClass('active');
    );

O cualquiera

$('.list li').click(function () {
        $(this).parent().parent().children('h3')addClass('active');
    );

¿Alguna idea?

0
Bill Kary 28 ago. 2014 a las 14:20

2 respuestas

La mejor respuesta

Utilice este

$('.list li').click(function () {
        $(this).parent().parent().prev().addClass('active');
});

Demo

1
Mritunjay 28 ago. 2014 a las 10:31

Uso:

 $(this).closest('div').prev('h3').addClass('active');

O

 $(this).closest('div').siblings('h3').addClass('active');
3
Milind Anantwar 28 ago. 2014 a las 10:21