Jquery добавить и удалить класс в div, размещенный внутри li

0

я хочу добавить и удалить класс в div, размещенном внутри li, и когда я нажму на другой li ineed, чтобы удалить класс righthapeactive из активированного div

<ul id="servicesleft">
    <li class="left1">              
        <span>Lorem ipsum</span>
        <div id="rightshape" class="t"></div>
    </li>   

    <li class="left1">              
        <span>Lorem ipsum</span>
        <div id="rightshape" class="t"></div>
    </li>   

    <li class="left1">              
        <span>Lorem ipsum</span>
        <div id="rightshape" class="t"></div>
    </li>
</ul>

jQuery(document).ready(function() {
    $('#servicesleft').delegate('li', 'click', function() {
        $(this).find('#rightshape').addClass('rightshapeactive').siblings().removeClass('rightshapeactive');
    });
});
  • 2
    Значение атрибута id должно быть уникальным во всем документе
Теги:
removeclass
addclass

2 ответа

1
Лучший ответ

Это должно сработать. После .find('#rightshape') выбор относится к div, а не к li. .end возвращает вас к предыдущему выбору.

jQuery(document).ready(function() {
  $('#servicesleft').delegate('li', 'click', function() {
    $(this).find('#rightshape')
      .addClass('rightshapeactive')
      .end()
      .siblings()
      .find('#rightshape')
      .removeClass('rightshapeactive');
  });
});

Это может быть еще лучше:

jQuery(document).ready(function() {
  $('#servicesleft').delegate('li', 'click', function() {
    $('.rightshapeactive').removeClass('rightshapeactive');
    $('#rightshape', this).addClass('rightshapeactive');
  });
});
  • 0
    Спасибо, вы классные
0

Вместо этого используйте класс "t": http://jsfiddle.net/m27ra/

jQuery(document).ready(function() {
    $('#servicesleft').delegate('li', 'click', function() {
        $(this).parent().find('.t').removeClass('rightshapeactive');
        $(this).find('.t').addClass('rightshapeactive');
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню