Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.11.2013, 09:35
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Сообщение от Faab Посмотреть сообщение
Согласен, напортачил.

$(".product_price_" + product_id + "")


Какая внимательность! ))
Я кажется понял Вашу логику... добавлять id товара в строку класса id полей цены и количества на стадии формирования документа (в php).
Тем самым на выходе кода буду иметь уже готовые разные id с номерами...
хм.. а потом уже только с ними и работать. Тогда и определять никаких родителей не надо
Правильно?
Или я уже сам себя перехитрить пытаюсь?

Последний раз редактировалось Chekist, 05.11.2013 в 09:38.
Ответить с цитированием
  #12 (permalink)  
Старый 05.11.2013, 09:51
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Сообщение от Faab Посмотреть сообщение
$('.check').click(function(){
     var product_id = this.id;
     var product_amount = $('#product_amount_' + product_id).val();
     var product_price = $('#product_price_' + product_id).val();
});


Зная эти величины, теперь можно складывать и вычитать.. на ваш вкус.
Переделал: http://jsfiddle.net/Mv6u6/3/
НО!
Описанный вами метод не работает, а именно скрипт пишет уже в самом начале в var product_id пустоту! Поэтому и не работает дальше...
Что в строке var product_id = this.id; не так??
Ответить с цитированием
  #13 (permalink)  
Старый 05.11.2013, 09:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Chekist
при нажатии на span class="check" вызывается функция подсчета общей суммы (значение из родительского class="tovar-price" умножается на значение родительского input.

Как описать функцию? )
Предложу такой вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(function (){
	$('.check').click(function (){
		var o=this.parentNode.parentNode;
		var sum=$(o).find('.tovar-price > span').text();
		var n=$(o).find('.numbers > input').val();
		alert(sum*n);
	});
});
</script>
</head>
<body>
<div class="tovar" id="41">
	<div class="tovar-image">
		<img src="/img/b/f1.jpg">
	</div>
	<div class="tovar-name">
		Патрик<br>
	</div>
	<div class="tovar-inside-and-size">
		(гелий, 80х60 см)
	</div>
	<div class="tovar-price">
		<span>280</span> руб/шт
	</div>
	<div class="numbers">
		<span class="minus">-</span>
		<input id="41" type="text" value="1" size="3">
		<span class="plus">+</span>
		<span class="check">=</span>
	</div>
</div>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 05.11.2013, 10:10
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Сообщение от ksa Посмотреть сообщение
Предложу такой вариант...
Вооооооооот!

Прошу прощения за кривость html, но это чтоб быстрее показать что ВСЁ РАБОТАЕТ! ))))
Спасибище!

http://jsfiddle.net/Mv6u6/4/

ps. Два дня изучаю яву+jq и это что-то с чем-то я скажу Вам, когда после нескольких часов получаешь рабочий код.... )))) да вы и сами наверное знаете ))
Ответить с цитированием
  #15 (permalink)  
Старый 05.11.2013, 10:38
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

this.parentNode.parentNode - это не совсем правильный путь. Он жестко привязывает код к верстке. Логичнее было бы наоборот идти сверху вниз - сначала собрать в массив товар, а затем навешивать калькуляторы на каждый.

Сообщение от Chekist
Стопанулся на этапе:... при нажатии на ссылку брались значения ТОЛЬКО из родителельских дивов в их же пределах.

Что нужно дописать в код для выполнения этого обязательного условия?
В сообщении номер 6 я специально добавил еще один div, чтоб было видно работу. Почему стопанулись-то?

Последний раз редактировалось BETEPAH, 05.11.2013 в 10:41.
Ответить с цитированием
  #16 (permalink)  
Старый 05.11.2013, 10:41
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

В качестве бонуса можно попросить допилить немного код
http://jsfiddle.net/Mv6u6/4/
на проверку чтобы в input не было левых символов (буквы, отрицательные итп) только числа от 1 до 999.
В противном случае возвращалась бы ошибка строкой.
???
Можно конечно отправить меня читать основы... как вариант ))))
Ответить с цитированием
  #17 (permalink)  
Старый 05.11.2013, 10:42
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Сообщение от BETEPAH Посмотреть сообщение
this.parentNode.parentNode - это не совсем правильный путь. Он жестко привязывает код к верстке. Логичнее было бы наоборот идти сверху вниз - сначала собрать в массив товар, а затем навешивать калькуляторы на каждый.


В сообщении номер 6 я специально добавил еще один div, чтоб было видно работу. Почему стопанулись-то?
Все работает, но не на чистой яве, как предложили Вы, а на jq.
http://jsfiddle.net/Mv6u6/4/
Спасибо!!!
Ответить с цитированием
  #18 (permalink)  
Старый 05.11.2013, 10:44
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Chekist
Все работает, но не на чистой яве, как предложили Вы, а на jq.
Какая разница на чем? Суть не в этом.
Работает до первого редизайна, а затем верстальщику придется искать, почему перестало работать
Ответить с цитированием
  #19 (permalink)  
Старый 05.11.2013, 10:50
Аспирант
Отправить личное сообщение для Chekist Посмотреть профиль Найти все сообщения от Chekist
 
Регистрация: 31.10.2013
Сообщений: 38

Допилил код на проверку данных в input (переменная n количество товара) - должна быть только целым числом >= 1.
Вот код:
http://jsfiddle.net/Mv6u6/5/
Последний вопрос - всё ли я учел? Или есть вариант более корректный?
Ответить с цитированием
  #20 (permalink)  
Старый 05.11.2013, 10:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от BETEPAH
Он жестко привязывает код к верстке. Логичнее было бы наоборот идти сверху вниз
Это спорный вопрос...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли считать инфу посетителей с чужого сайта? Klerik Общие вопросы Javascript 2 20.09.2013 15:42
зависымый select на html возможно ли? pro_ef Библиотеки/Тулкиты/Фреймворки 1 20.02.2013 22:49
Возможно ли? zork0 Общие вопросы Javascript 8 12.12.2012 16:09
Возможно ли обращение к select по его name? Diablos Общие вопросы Javascript 15 26.09.2011 23:13
Возможно ли это? white.bear Я не знаю javascript 1 05.01.2011 12:53