Соседний элемент выше при клике
Добрый вечер.
На странице есть МНОГО одинакового HTML: <div class="caption"> <p class="One">Текст</p> <div class="collapse"> <p>Текст2</p> <a class="showmore">Ссылка</a> </div> </div> Как мне сделать, чтобы при клике на <a class="showmore">Ссылка</a> у верхнего элемента p удалялся бы его класс One ? Пробую так: $(".collapse .showmore").click(function(e) { $(this).closest(".One").removeClass("One"); e.preventDefault(); }) Использую this, так как без него срабатывать будут несколько таких блоков. Пробовал и parents и siblings, по итогу не получается ничего( |
$(".collapse .showmore").click(function(e) { $(this).parents().prev().removeClass("One"); e.preventDefault(); }); |
$(".collapse .showmore").click(function(e) { $(this).closest(".caption").children('.One').removeClass("One"); e.preventDefault(); }); |
Timurkin,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .One{ background-color: #FF0000; } .caption { border: 1px solid #0000FF } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".caption").on("click", ".showmore", function(e) { $(".One", e.delegateTarget).removeClass("One"); e.preventDefault(); }) }); </script> </head> <body> <div class="caption"> <p class="One">Текст</p> <div class="collapse"> <p>Текст2</p> <a class="showmore">Ссылка</a> </div> </div> <div class="caption"> <p class="One">Текст</p> <div class="collapse"> <p>Текст2</p> <a class="showmore">Ссылка</a> </div> </div> </body> </html> |
Спасибо большое за такой оперативный ответ, помогло!)
Правда у меня в итоге внутри p class="One" оказался еще тег a, в итоге обратился к нему следующим образом: $(".collapse .showmore").click(function(e) { $(this).closest(".caption").children('.One').children('a').removeClass("One"); e.preventDefault(); }); |
Рони, ваша конструкция сложная для меня, буду разбираться на досуге. Спасибо за ответ!
|
$(".collapse .showmore").click(function(e) { $(this).closest(".caption").find('.One>a').removeClass("One"); e.preventDefault(); }); |
Часовой пояс GMT +3, время: 17:30. |