我是JavaScript的新手,我希望你可以帮助我,就像在主题中,null属性。
var add = document.getElementById('addition').checked;
var subs = document.getElementById('substraction').checked;
var multi = document.getElementById('multiplication').checked;
var div = document.getElementById('division').checked;
var result = 0;
var x = parseInt(document.getElementById('firstNumber').value);
var y = parseInt(document.getElementById('secondNumber').value);
function calculator()
{
if (add)
{
result = addition(x, y);
}
else if (subs)
{
result = substraction(x, y);
}
else if (multi)
{
result = multiplication(x, y);
}
else if (division)
{
result = division(x, y);
};
}
<fieldset>
<legend>Method</legend>
<p><label><input type="radio" name="method" id="addition" />Addition</label></p>
<p><label><input type="radio" name="method" id="substraction" />Substraction</label></p>
<p><label><input type="radio" name="method" id="multiplication" />Multiplication</label></p>
<p><label><input type="radio" name="method" id="division" />Division</label></p>
</fieldset>
<input type="submit" value="Submit" onclick="calculator();" />
他们收到了消息 “未捕获的TypeError:无法读取null index.html:24的属性'已检查' (匿名函数)“
请帮帮我。 迎接!
答案 0 :(得分:6)
您的javascript代码在DOM元素在页面上准备就绪之前正在执行。
在DOM准备就绪后,您需要执行尝试获取输入的代码。
(function () {
if (window.addEventListener) {
window.addEventListener('DOMContentLoaded', domReady, false);
} else {
window.attachEvent('onload', domReady);
}
} ());
function domReady() {
var add = document.getElementById('addition').checked;
var subs = document.getElementById('substraction').checked;
var multi = document.getElementById('multiplication').checked;
var div = document.getElementById('division').checked;
var result = 0;
var x = parseInt(document.getElementById('firstNumber').value);
var y = parseInt(document.getElementById('secondNumber').value);
}
答案 1 :(得分:0)
似乎这里有几个问题。某处可能有更多代码?或更多要添加。无论如何,我会继续在实际调用函数时声明你的变量。
function calculator() {
var add = document.getElementById('addition').checked;
var subs = document.getElementById('substraction').checked;
var multi = document.getElementById('multiplication').checked;
var div = document.getElementById('division').checked;
var result = 0;
var x = parseInt(document.getElementById('firstNumber').value);
var y = parseInt(document.getElementById('secondNumber').value);
if (add) {
result = x + y;
}
else if (subs) {
result = x - y;
}
else if (multi) {
result = x * y;
}
else if (division) {
result = x / y;
alert("division");
}
}
我不知道你是否计划使用另一种方法进行分割,但是如果你想要分割两个数字,如果选择了分区的单选按钮,你只需使用/.
您还可以使用正在检查单选按钮的事件来设置add,subs,multi,div变量。
正如帕特里克·埃文斯所说,你无法在单选按钮被渲染之前查找单选按钮的值(我们可以使用$(document).ready()或者像Patrick Evans那样。但是我们可能在用户选择一个或单击您的按钮之前,不要查看它们的值。