Соседний элемент выше при клике
Добрый вечер.
На странице есть МНОГО одинакового 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:12. |