Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   По нажатию на кнопку изменять число (https://javascript.ru/forum/dom-window/61606-po-nazhatiyu-na-knopku-izmenyat-chislo.html)

r1sus 25.02.2016 20:34

По нажатию на кнопку изменять число
 
Добрый вечер! Я совсем еще новичок, поэтому просьба доступно обьянить или ткнуть где прочитать. Подскажите пожалуйста, что не так с кодом? Само значение элемента выводится, но при нажатии на кнопку + появляется ошибка.(undefined). почти тот же код работает если элемент count заменить на id , и обращаться getElementById. Но так как подобных элементов несколько заменила на класс и все(
<input name="plus" type="button" value="+" onclick="addNum()"> <p class="count">1</p>

if (document.getElementsByClassName('count')!==null) {
    var elem = document.getElementsByClassName('count');
    for (var i = 0; i < elem.length; i++) {
        elem[i] = elem.innerHTML;
        console.log(elem[i].innerHTML);
        var num = +elem[i].innerHTML;
        function addNum() {
            num++;
            elem[i].innerHTML = num;
        }
    }
}

рони 25.02.2016 21:28

r1sus,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<input class="plus" type="button" value="+" > <p class="count">1</p>
<input class="plus" type="button" value="+" > <p class="count">1</p>
<script>
window.addEventListener('DOMContentLoaded', function() {
var p = document.querySelectorAll('.count');
[].forEach.call(document.querySelectorAll('.plus'), function(input,i) {
        input.addEventListener('click', function() {
            p[i].innerHTML -= -1
        });
    });
});

</script>
</body>

</html>

r1sus 25.02.2016 21:38

рони,
Спасибо большое за такой быстрый ответ. Ваше решение прекрасно работает, но к сожалению, оно не родилось у меня в голове . подскажите ход моих мыслей совсем неверный? вы не могли бы хоть намекнуть что я делаю не так? спасибо за понимание

рони 25.02.2016 21:47

r1sus,
по вашему коду: функция в onclick, должна сама догадатся, какая она по счёту

r1sus 25.02.2016 21:49

рони,
спасибо!

Coriolan161 25.02.2016 22:42

r1sus,
jsfiddle.net/Coriolan161/n0jucts1/

r1sus 25.02.2016 22:56

Coriolan161,
Спасибо за предложенное решение! Более понятное для меня решение

r1sus 25.02.2016 23:14

Coriolan161,
У меня была задача избавится от id, так как на странице несколько count и у каждого есть кнопка +. Но все равно большое спасибо за участие

anna4 19.10.2016 04:08

Помогите пожалуйста, как кнопке прописать это значение <span id="numberPlus">0</span> :help:

warren buffet 19.10.2016 07:04

anna4, попробуй еще раз. )


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