Тут в первое поле вводится целое число и после нажатия преобразовать во втором поле должна вывестиь римская цифра, соответствующая этому целому числу, но меня волнует только почему ниего вообще не выводится? Помогите, пожалуйста((
<script> const normalNumbers=[1000,900,500,400,100,90,50,40,10,9,5,4,1]; const romanNumbers=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I']; let a=document.getElementByld("A");
function conversion(a){ let result = ''; normalNumbers.map ((item,index) => { while (item <= a){ result += romanNumbers[index]; a=a-item; } }); document.getElementByld("B").value=result; }
Первая ошибка - у тебя опечатка в вызове метода getElementByld.
Вторая ошибка - ты используешь элемент #A, а не его value.
Третья ошибка - ты вызываешь функцию из HTML без аргумента, поэтому аргумент "a" внутри функции всегда будет равен пустой строке, как было при первой записи переменной. Это можно исправить путем удаления аргумента "a" и переноса переменной внутрь тела функции, вот так...
function conversion() { let a = document.getElementById("A").value; // Остальной код }
Если тебе важно по какой-то причине объявить переменную в глобальной области видимости, то нужно дополнительное событие такого вот вида.
let a = ''; document.getElementById("A").onchange = (e) => a = e.target.value;
Еще можно сделать вот так, это что-то среднее между вариантами.
document.getElementById("button").onclick = () => { let a = document.getElementById("A").value; conversion(a); }
// Или document.getElementById("button").onclick = () => { conversion(document.getElementById("A").value); }
Но это что-то всё равно не хочет работать((((((((((((( Можете сказать, пожалуйста, чтобы использовать value элемента что нужно сделать???/ Я пробовала a.value и parseInt(a.value) , но ... Вот так: while (item <=a.value){ result +=romanNumbers[index]; a.value=a.value-item; }
Яков Гото
Искусственный Интеллект
(321006)
Я ведь уже сказал, проблема основная в передаче пустого значения.
Не знаю, как тебе еще объяснить. Посмотри на собственный слегка доработанный код и попытайся понять, чем он отличается и почему работает.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Преобразование в римские цифры</title>
</head>
<body>
<p><input type="text" id="A"></p>
<p><input type="text" id="B"></p>
<p><input type="button" value="Преобразовать" onclick="conversion()"></p>
<script>
const normalNumbers=[1000,900,500,400,100,90,50,40,10,9,5,4,1];
const romanNumbers=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
let a=document.getElementByld("A");
function conversion(a){
let result = '';
normalNumbers.map ((item,index) => {
while (item <= a){
result += romanNumbers[index];
a=a-item;
}
});
document.getElementByld("B").value=result;
}
</script>
</body>
</html>