【发布时间】:2022-01-10 20:51:33
【问题描述】:
我正在尝试使用单选按钮进行算术运算(只是一个实验)
浏览器返回值 NaN
let num1 = parseInt(document.querySelectorAll('#number1:checked'));
let num2 = parseInt(document.querySelectorAll('#number2:checked'));
function addTambah() {
result = num1 + num2;
alert(result);
}
<p>number : </p>
<input type="radio" name="number1" id="number11" value="1">
<label for="radio">1</label>
<input type="radio" name="number1" id="number12" value="2">
<label for="radio">2</label>
<p> number 2 : </p>
<input type="radio" name="number2" id="number21" value="1">
<label for="radio">1</label>
<input type="radio" name="number2" id="number22" value="2">
<label for="radio">2</label>
<br>
<button type="button" onclick="addTambah()">Add</button>
【问题讨论】:
-
querySelectorAll返回一个类似数组的节点列表。您不能在节点列表上 parseInt。请改用querySelector,特别是如果您要定位具有 id 的元素。 -
@Andy 一样,它的回报南
-
您的 ID 应该是唯一的
-
这是一个使用 ES6 的工作版本和推荐的方法jsfiddle.net/mplungjan/ro2891s4
const checked = document.querySelectorAll('[name^=number]:checked'); const sum = checked.length ? [...checked].map(fld => +fld.value).reduce((a, b) => a + b) : 0;
标签: javascript html dom