Показать сообщение отдельно
  #1 (permalink)  
Старый 01.09.2011, 01:48
Аватар для systemiv
Профессор
Отправить личное сообщение для systemiv Посмотреть профиль Найти все сообщения от systemiv
 
Регистрация: 19.08.2011
Сообщений: 186

Работа с DOM
Уже 2 часа ночи, а завтра 1 сентября, надо в инст идти=)

Помогите правильно организовать работу функции, у меня чувство что здесь всё на костылях.
Функция должна при нажатии на стрелочку, увеличивать и цену, которая указана у товара.
Вот html:
<div class="oneItem" id="product_1">
				<div class="imageItem"></div>
				<div class="infoItem">
					<p>Цена:&nbsp;<span class="priceItem">44.34</span>руб.</p>
					<span>
						Кол-во:&nbsp;
						<span class="rateItem" id="rateDown" onclick="rateDown();">&#9668;</span>
						<input type="text" id="rateInput" value="1" />
						<span class="rateItem" id="rateUp" onclick="rateUp();">&#9658;</span>
					</span>
					<input type="submit" id="submiItem" value="Добавить в корзину" />
				</div>
			</div>

Вот, как то так. Вот так я разруливаю вопрос с DOM:
function rateUp(){
	var input = document.getElementById('rateInput');
	var price = document.getElementById('product_1');
	var price = price.lastElementChild.firstElementChild.firstElementChild;
	input.value++;
	price.innerHTML = priceStart.innerHTML * input.value;
}


Два вопроса, как убрать костыль с путешествием через всё дерево, пока в голову лезет мысль, добавить не ИД, а класс, ко всем элементам, для простоты поиска

И второй вопрос, как мне отловить стартовую цену?
Сейчас функция работает некоректно, и увеличивается в геометричесской прогрессии.
Мне нужно как то сохранить цену в переменную, и оставить её там, в голову лезет только проверка, 1 товар в корзине или нет, если 1, то записать его значение в переменную, если не один, то оставить как было.

Очень важно Ваше мнение!
Ответить с цитированием