Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2016, 18:49
Аспирант
Отправить личное сообщение для tk.stas Посмотреть профиль Найти все сообщения от tk.stas
 
Регистрация: 25.02.2015
Сообщений: 41

Выдрать текст из блока
Всем привет! Проблема такая: необходимо выдрать текст из блока по клику на кнопку "Отправить" выбранного блока.

Запутался уже как составить порядок селекторов в скрипте.

<div class="card">
			  <div class="card-content">
				   <div class="card-content-inner">Текст 1</div>
			  </div>
			  <div class="card-footer">
				  <label class="label-radio item-content">
					<input type="checkbox" name="ks-checkbox" value="Сhecked0" checked="checked">
					<div class="item-media"><i class="icon icon-form-radio"></i></div>
				  </label><a href="#" class="link">Отправить</a></div>
			</div>
<div class="card">
			  <div class="card-content">
				   <div class="card-content-inner">Текст 2</div>
			  </div>
			  <div class="card-footer">
				  <label class="label-radio item-content">
					<input type="checkbox" name="ks-checkbox" value="Сhecked0" checked="checked">
					<div class="item-media"><i class="icon icon-form-radio"></i></div>
				  </label><a href="#" class="link">Отправить</a></div>
			</div>


$('a').on('click', function () {
var textsocial = $("this, div.card-content").text();
alert(textsocial);
});
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2016, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

tk.stas,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

</script>
  <script>
$(function() {
    $(".card").each(function(indx, el) {
        var text = $(".card-content-inner", el).text();
        $(".link", el).on("click", function(event) {
            event.preventDefault();
            alert(text)
        })
    })
});
  </script>
</head>

<body>
<div class="card">
			  <div class="card-content">
				   <div class="card-content-inner">Текст 1</div>
			  </div>
			  <div class="card-footer">
				  <label class="label-radio item-content">
					<input type="checkbox" name="ks-checkbox" value="Сhecked0" checked="checked">
					<div class="item-media"><i class="icon icon-form-radio"></i></div>
				  </label><a href="#" class="link">Отправить</a></div>
			</div>
<div class="card">
			  <div class="card-content">
				   <div class="card-content-inner">Текст 2</div>
			  </div>
			  <div class="card-footer">
				  <label class="label-radio item-content">
					<input type="checkbox" name="ks-checkbox" value="Сhecked0" checked="checked">
					<div class="item-media"><i class="icon icon-form-radio"></i></div>
				  </label><a href="#" class="link">Отправить</a></div>
			</div>


</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2016, 19:20
Аспирант
Отправить личное сообщение для tk.stas Посмотреть профиль Найти все сообщения от tk.stas
 
Регистрация: 25.02.2015
Сообщений: 41

Вот оно как. Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2016, 11:15
Аспирант
Отправить личное сообщение для tk.stas Посмотреть профиль Найти все сообщения от tk.stas
 
Регистрация: 25.02.2015
Сообщений: 41

А если страница была создана динамически?Как отследить клик по кнопки, понятно. А вот .each никак не хочет работать.
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2016, 11:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от tk.stas
Как отследить клик по кнопки, понятно.
видимо не очень поняли ... body лучше заменить на ближайший постоянный родитель ".card",
$(function() {
    $("body").on("click", ".card", function(event) {
        var a = $(".card-content-inner", this).text();
        $(event.target).is(".link") && (event.preventDefault(), alert(a))
    })
});
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2016, 17:27
Аспирант
Отправить личное сообщение для tk.stas Посмотреть профиль Найти все сообщения от tk.stas
 
Регистрация: 25.02.2015
Сообщений: 41

Сообщение от рони Посмотреть сообщение
видимо не очень поняли ... body лучше заменить на ближайший постоянный родитель ".card",
$(function() {
    $("body").on("click", ".card", function(event) {
        var a = $(".card-content-inner", this).text();
        $(event.target).is(".link") && (event.preventDefault(), alert(a))
    })
});
А на чистом js так можно сделать?
Ответить с цитированием
  #7 (permalink)  
Старый 31.10.2016, 18:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от tk.stas
А на чистом js так можно сделать?
да читать делегирование

jquery тоже чистый js

Последний раз редактировалось рони, 31.10.2016 в 18:05.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03