Найти произведение цифр числа
Необходимо получить произведение цифр и записать их в элемент DIV С id='mpl'. При попытке нажатия ничего не происходит, почему?
function g() {
var num = document.getElementById('mult').value,
multiplication = 1,
mplDiv = document.getElementById('mpl'),
i = 0;
var lgth = num.length;
while (i < lgth) {
multiplication = num[i] * multiplication;
multiplication = mplDiv;
i += 1;
}
mplDiv = multiplication;
}
<div style="display:flex">
<div>
№7.<br>
<input type="text" class="field" id="mult" value="12345" onfocus="this.value=''" style="height:2em;" onkeypress="numkey()" />
<button class="btn" onclick="g()">Получить произведение введённых цифр</button>
</div>
<div>
<div id="mpl"></div>
</div>
</div>
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
Основная проблема – строка multiplication = mplDiv; здесь результат перетирается дивом на первой же итерации и следующий вычисления приводятся к NaN
Она вообще не нужна, достаточно просто установить результат в конце:
function g() {
var num = document.getElementById('mult').value,
multiplication = 1,
mplDiv = document.getElementById('mpl'),
i = 0;
var lgth = num.length;
while (i < lgth) {
multiplication = num[i] * multiplication;
i += 1;
}
mplDiv.textContent = multiplication;
}
<div style="display:flex">
<div>
№7.<br>
<input type="text" class="field" id="mult" value="12345" onfocus="this.value=''" style="height:2em;" />
<button class="btn" onclick="g()">Получить произведение введённых цифр</button>
</div>
<div>
<div id="mpl"></div>
</div>
</div>