Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2016, 15:56
Аватар для villiwalla
Интересующийся
Отправить личное сообщение для villiwalla Посмотреть профиль Найти все сообщения от villiwalla
 
Регистрация: 16.02.2016
Сообщений: 29

Значение дочернего тэга на уровень выше
Добрый день! Подскажите пожалуйста, как можно получить значение дочернего("соседнего") тэга по клику? Есть блок который содержит заголовок (h4) и кнопку, при клике на кнопку нужно получить значение заголовка, поэтому нужен заголовок именно того блока где кликнули по кнопке заказать( Как при клике на вложенную кнопку посмотреть
<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 img-block">
  	<a class="fancybox first-img" rel="gallery173" href="/assets/images/products/173/orel.jpg" title="">
<img src="/assets/images/products/173/orel.jpg" alt="" class="img-responsive"></a>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
<button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" >Заказать</button>
</div>
  </div>
</div>


То до чего дошел я:
$(".buys").click(function() {
  alert($("h3").text());
});
Ответить с цитированием
  #2 (permalink)  
Старый 16.02.2016, 16:14
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Я у вас h3 в коде вообще не увидел. Да и не совсем понял, что вам надо. У вас есть кнопка, по клику который мы должны получить заголовок чего? какой заголовок?
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2016, 16:39
Аватар для villiwalla
Интересующийся
Отправить личное сообщение для villiwalla Посмотреть профиль Найти все сообщения от villiwalla
 
Регистрация: 16.02.2016
Сообщений: 29

Сообщение от AciDWarrioR Посмотреть сообщение
Я у вас h3 в коде вообще не увидел. Да и не совсем понял, что вам надо. У вас есть кнопка, по клику который мы должны получить заголовок чего? какой заголовок?
Ну про h3, я не писал я про h4. При нажатии на кнопку с классом buys я хочу получить значение заголовка h4 являющегося соседним селектором к классу buy в котором и находится изначально кнопка на которую нажимаю.
Ответить с цитированием
  #4 (permalink)  
Старый 16.02.2016, 16:43
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

villiwalla,
Если кнопка и заголовок в одном div, то по клику на кнопке надо найти родителя кнопки и в родителе заголовок
Ответить с цитированием
  #5 (permalink)  
Старый 16.02.2016, 16:48
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Сообщение от villiwalla
Ну про h3, я не писал я про h4
Тогда простите, что это такое:
Сообщение от villiwalla
То до чего дошел я:
$(".buys").click(function() {
  alert($("h3").text());
});
Может конечно можно проще, но я сделал так:
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 img-block">
  	<a class="fancybox first-img" rel="gallery173" href="/assets/images/products/173/orel.jpg" title="">
<img src="/assets/images/products/173/orel.jpg" alt="" class="img-responsive"></a>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
<button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton()'>Заказать</button>
</div>
  </div>
</div>
</body>
</html>
<script>
function newButton(){
	var parentDiv1 = $('.buys').parent();
	var parentDiv2 = parentDiv1.parent();
	var h4 = parentDiv2.find('h4');
	var title = h4.text();
	alert(title);
}
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 16.02.2016, 16:56
Аватар для villiwalla
Интересующийся
Отправить личное сообщение для villiwalla Посмотреть профиль Найти все сообщения от villiwalla
 
Регистрация: 16.02.2016
Сообщений: 29

Сообщение от AciDWarrioR Посмотреть сообщение
Тогда простите, что это такое:
Может конечно можно проще, но я сделал так:
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 img-block">
  	<a class="fancybox first-img" rel="gallery173" href="/assets/images/products/173/orel.jpg" title="">
<img src="/assets/images/products/173/orel.jpg" alt="" class="img-responsive"></a>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
<button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton()'>Заказать</button>
</div>
  </div>
</div>
</body>
</html>
<script>
function newButton(){
	var parentDiv1 = $('.buys').parent();
	var parentDiv2 = parentDiv1.parent();
	var h4 = parentDiv2.find('h4');
	var title = h4.text();
	alert(title);
}
</script>
Спасибо за помощь, но как тогда быть если на странице более 1-го подобного блока? Я так понимаю нужно обращаться к материалам по созданию событий?
Ответить с цитированием
  #7 (permalink)  
Старый 16.02.2016, 17:04
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Сообщение от villiwalla
быть если на странице более 1-го подобного блока?
Если на странице, то все будет работать. Вы вешаете на каждую кнопку функцию с таким нутром, как я написал. Главное, что бы в родительском dive, был только один тэг h4.
Для упрощение, если у вас будут несколько тэгов h4, можете необходимому h4 класс задавать и тогда искать по классу.
А в плане того, что все будет работать можете посмотреть:
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 img-block">
  	*!*<h4> То что не покажет в alert, потому что не в том div</h4>*/!*
  	<a class="fancybox first-img" rel="gallery173" href="/assets/images/products/173/orel.jpg" title="">
<img src="/assets/images/products/173/orel.jpg" alt="" class="img-responsive"></a>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
<button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton()'>Заказать</button>
</div>
  </div>
</div>
</body>
</html>
<script>
function newButton(){
	var parentDiv1 = $('.buys').parent();
	var parentDiv2 = parentDiv1.parent();
	var h4 = parentDiv2.find('h4');
	var title = h4.text();
	alert(title);
}
</script>

Сообщение от villiwalla
Я так понимаю нужно обращаться к материалам по созданию событий?
Думаю лучше почитать про Jquery и архитектуру DOM

Последний раз редактировалось AciDWarrioR, 16.02.2016 в 17:14.
Ответить с цитированием
  #8 (permalink)  
Старый 16.02.2016, 18:37
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

На странице 2 подобных блока, каждый со своей кнопкой
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
  	<h4> Печатается все на выбор</h4>
	<div class="buy">
      <button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton(this);'>Заказать</button>
   </div>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
       <button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton(this);'>Заказать</button>
    </div>
  </div>
</div>
</body>
</html>
<script>
    function newButton(butt) {
        var parentDiv1 = $(butt).parent();
        var parentDiv2 = parentDiv1.parent();
        var h4 = parentDiv2.find('h4');
        var title = h4.text();
        alert(title);
    }
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 16.02.2016, 19:50
Аватар для villiwalla
Интересующийся
Отправить личное сообщение для villiwalla Посмотреть профиль Найти все сообщения от villiwalla
 
Регистрация: 16.02.2016
Сообщений: 29

Сообщение от Dilettante_Pro Посмотреть сообщение
На странице 2 подобных блока, каждый со своей кнопкой
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div class="flavor col-lg-3 col-md-3 col-sm-6 col-xs-12 all  russian">
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
  	<h4> Печатается все на выбор</h4>
	<div class="buy">
      <button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton(this);'>Заказать</button>
   </div>
  </div>
  <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
	<h4>Каминные часы "Державный орёл"</h4>
	<div class="buy">
       <button class="buys btn btn-warning btn-block" data-toggle="modal" data-target="#buy" onclick='newButton(this);'>Заказать</button>
    </div>
  </div>
</div>
</body>
</html>
<script>
    function newButton(butt) {
        var parentDiv1 = $(butt).parent();
        var parentDiv2 = parentDiv1.parent();
        var h4 = parentDiv2.find('h4');
        var title = h4.text();
        alert(title);
    }
</script>
Огромное спасибо, скажите что за данные в переменную функцию падают? или это просто сокращение селектора button?

Последний раз редактировалось villiwalla, 16.02.2016 в 19:53.
Ответить с цитированием
  #10 (permalink)  
Старый 17.02.2016, 06:41
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

В описании функции butt - это внутреннее имя параметра, обзывайте как хотите. А при вызове функции при нажатии на конкретную кнопку в функцию передается this - ссылка на эту кнопку
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Как присвоить значение элементу формы материнского окна из дочернего? libinstyle Events/DOM/Window 15 28.07.2010 16:56
Значение тэга select blasted Элементы интерфейса 4 07.07.2010 14:45
Как получить значение аттрибута вложенного тэга по id losk Events/DOM/Window 4 21.11.2009 10:08