Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Присвоить значения атрибуту из переменной (https://javascript.ru/forum/dom-window/57537-prisvoit-znacheniya-atributu-iz-peremennojj.html)

apisklov 07.08.2015 22:15

Присвоить значения атрибуту из переменной
 
Добрый вечер! Делаю корзину на основе готового решения и столкнулся с такой проблемой: занес в переменную количество товара
var plat = document.getElementById("kolvo").value;


теперь необходимо значение этой переменной вставить в html
<button class="border" onclick="cart.addToCart(this, '002', 'Зонт1', '1500', 'здесь значение переменной plat')">Купить</button>


Подскажите пожалуйста как это сделать.

И еще вопрос, так как позиций товаров много, каким образом получать значение переменной plat (количество товара) именно текущего товара?

javaQest 08.08.2015 00:54

<html>
<head>
</head>
<body>




<input id="kolvo">


<button class="border" onclick="card.addToCard(this, '002', 'Зонт1', '1500', kolvo.value)">Купить</button>

<script>
card={
 addToCard: function(env, foo, bar, baz, plat){alert(plat)}
}
</script>

</body>
</html>

apisklov 08.08.2015 18:41

Спасибо за ответ. Решил немного другим способом.

Теперь мучаюсь со значением текущего input. Когда добавляю в корзину, всегда берется значение первого input.

this.addToCart = function(curObj, id, name, price, num)
		{		
		   		num = $(".mam").val();
         		num = parseInt(num)
         		alert(num)


так получаю значение value. Но значение всегда первого input.

В чем проблема? Подскажите пожалуйста

EmperioAf 08.08.2015 18:57

Цитата:

Сообщение от apisklov
В чем проблема? Подскажите пожалуйста

приведите пожалуйста полностью html код с инпутами.

javaQest 08.08.2015 19:00

apisklov,
ничем не могу помочь. Вы "решили" по-своему, брать значения всегда из первого инпута, и спрашиваете, как не делать этого. Это пародоксальный вопрос.

apisklov 08.08.2015 21:42

<div class="item border">
		<img src="img/shop/zont1.png" width="200">
		<p><b>Зонт1</b> |  Цена: 1200 руб</p> 
				<div class="sum_but">
					<span class="plus">+</span>
					<input value="1" maxlength="2" name="" id="" type="text" class="mam">
					<span class="minus">-</span>
				</div>
		<button  class="border" onclick="cart.addToCart(this, '001', 'Зонт1', '1200', '')">Купить</button>
	</div>
	
	<div class="item border">
		<img src="img/shop/zont2.png" width="200">
		<p><b>Зонт2</b> |  Цена: 1500 руб</p> 
				<div class="sum_but">
					<span class="plus">+</span>
					<input value="1" maxlength="2" name="" id="" type="text" class="mam">
					<span class="minus">-</span>
				</div>
		<button  class="border" onclick="cart.addToCart(this, '002', 'Зонт2', '1500', '')">Купить</button>
	</div>

apisklov 08.08.2015 21:55

Дело в том, что вашим способом тоже значение берется из первого input. Либо я не совсем правильно что-то делаю.

EmperioAf 08.08.2015 22:02

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="">
<meta name="description" content="">
<title>ГГ</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<div class="item border">
        <img src="img/shop/zont1.png" width="200">
        <p><b>Зонт1</b> |  Цена: 1200 руб</p>
                <div class="sum_but">
                    <span class="plus">+</span>
                    <input value="3" maxlength="2" name="" id="" type="text" class="mam">
                    <span class="minus">-</span>
                </div>
        <button  class="border" onclick="cart.addToCart(this, '001', 'Зонт1', '1200', '')">Купить</button>
    </div>
     
    <div class="item border">
        <img src="img/shop/zont2.png" width="200">
        <p><b>Зонт2</b> |  Цена: 1500 руб</p>
                <div class="sum_but">
                    <span class="plus">+</span>
                    <input value="5" maxlength="2" name="" id="" type="text" class="mam">
                    <span class="minus">-</span>
                </div>
        <button  class="border" onclick="cart.addToCart(this, '002', 'Зонт2', '1500', '')">Купить</button>
    </div>
<script>
var inputs = document.getElementsByClassName('mam');
    alert(inputs[0].value);
    alert(inputs[1].value);
</script>

<script>
var inputs = $('.mam');
    alert(inputs[0].value);
    alert(inputs[1].value);
</script>


</body>

</html>

apisklov 08.08.2015 22:16

не совсем понял. а если 50 позиций товаров?

EmperioAf 08.08.2015 22:18

Цитата:

Сообщение от apisklov (Сообщение 383309)
не совсем понял. а если 50 позиций товаров?

пройдитесь циклом, обращаясь к каждому элементу:
var inputs = document.getElementsByClassName('mam');
for (var i = 0; i < inputs.length; i++)
    alert(inputs[i].value);


Часовой пояс GMT +3, время: 03:31.