Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2018, 20:08
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

Соседний элемент выше при клике
Добрый вечер.
На странице есть МНОГО одинакового 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, по итогу не получается ничего(
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2018, 20:12
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(".collapse .showmore").click(function(e) {
	$(this).parents().prev().removeClass("One");
	e.preventDefault(); 
});
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2018, 20:14
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(".collapse .showmore").click(function(e) {
	$(this).closest(".caption").children('.One').removeClass("One");
	e.preventDefault(); 
});
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2018, 20:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2018, 21:17
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

Спасибо большое за такой оперативный ответ, помогло!)
Правда у меня в итоге внутри p class="One" оказался еще тег a, в итоге обратился к нему следующим образом:
$(".collapse .showmore").click(function(e) {
$(this).closest(".caption").children('.One').children('a').removeClass("One");
e.preventDefault(); 
});
Ответить с цитированием
  #6 (permalink)  
Старый 08.05.2018, 21:20
Аспирант
Отправить личное сообщение для Timurkin Посмотреть профиль Найти все сообщения от Timurkin
 
Регистрация: 12.08.2017
Сообщений: 50

Рони, ваша конструкция сложная для меня, буду разбираться на досуге. Спасибо за ответ!
Ответить с цитированием
  #7 (permalink)  
Старый 08.05.2018, 23:48
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(".collapse .showmore").click(function(e) {
$(this).closest(".caption").find('.One>a').removeClass("One");
e.preventDefault(); 
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение содержимого тега при клике на блок Javany11 Элементы интерфейса 2 10.03.2018 15:29
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Выделение текста при клике на элемент Alex351960 Events/DOM/Window 1 30.12.2014 00:37
При клике на элемент показать другой (эквивалентная связка) nimensy jQuery 4 22.12.2014 10:02
Выплывающая картинка при клике на кнопку karssen jQuery 9 19.10.2014 18:27