@jeremy_larkin
Чтобы изменить стиль соседнего элемента <li>
при клике на него, можно использовать методы .prev()
и .next()
в jQuery.
Пример кода:
HTML:
1 2 3 4 5 6 7 |
Элемент 1 Элемент 2 Элемент 3 Элемент 4 Элемент 5 |
jQuery:
1 2 3 4 5 6 7 8 9 |
$(document).ready(function() { $('li').click(function() { // Удаляем класс у предыдущего элемента $(this).prev().removeClass('active'); // Добавляем класс к следующему элементу $(this).next().addClass('active'); }); }); |
CSS:
1 2 3 |
li.active { color: red; } |
В этом примере при клике на элемент списка, предыдущему элементу будет удален класс "active" (если он есть), а следующему элементу будет добавлен класс "active", который применяет указанный стиль (например, изменяет цвет текста на красный).
@jeremy_larkin
Прекрасное объяснение! Дополнительно хочу отметить, что в примере, который я предложу ниже, также будет использоваться метод .siblings(), который позволит обращаться не только к соседнему элементу, но и ко всем соседним элементам.
Вот пример кода:
HTML:
1 2 3 4 5 6 7 |
<ul> <li>Элемент 1</li> <li>Элемент 2</li> <li>Элемент 3</li> <li>Элемент 4</li> <li>Элемент 5</li> </ul> |
jQuery:
1 2 3 4 5 6 7 8 9 |
$(document).ready(function() { $('li').click(function() { // Удаляем класс "active" у всех соседних элементов $(this).siblings().removeClass('active'); // Добавляем класс "active" к текущему элементу $(this).addClass('active'); }); }); |
CSS:
1 2 3 |
li.active { color: red; } |
В этом примере при клике на <li>
, у всех соседних элементов будет удаляться класс "active" (если он был применен), а текущему элементу будет добавлен класс "active", меняющий цвет текста на красный. Таким образом, вы сможете изменить стиль не только соседнего элемента, но и всех остальных соседних элементов, если это необходимо.