Javascript 未捕获类型错误:无法读取属性';选中';html:24

Javascript 未捕获类型错误:无法读取属性';选中';html:24,javascript,properties,null,Javascript,Properties,Null,我是JavaScript的新手,希望你们能帮助我,就像在主题中一样,null属性 var add = document.getElementById('addition').checked; var subs = document.getElementById('substraction').checked; var multi = document.getElementById('multiplication').checked; var div = document.getElementBy

我是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();" />
var add=document.getElementById('addition')。选中;
var subs=document.getElementById('substraction')。选中;
var multi=document.getElementById('multiplication')。选中;
var div=document.getElementById('division')。已选中;
var结果=0;
var x=parseInt(document.getElementById('firstNumber').value);
var y=parseInt(document.getElementById('secondNumber').value);
函数计算器()
{
如果(添加)
{
结果=相加(x,y);
}
else if(潜艇)
{
结果=减法(x,y);
}
else if(多个)
{
结果=乘法(x,y);
}
其他如有需要(分部)
{
结果=除法(x,y);
};
}
方法
加成

减法

倍增

分部

我收到消息了 “未捕获的TypeError:无法读取空索引的属性'checked'。html:24 (匿名功能)

请帮帮我。
欢迎

您的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);
}

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);
}

这里似乎有几个问题。可能有更多的代码?或需要添加更多内容。无论如何,我会在函数实际被调用时声明变量

    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变量


正如Patrick Evans所说,在呈现单选按钮之前,您不能查找单选按钮的值(我们可以使用$(document.ready()来完成此操作)或者如Patrick Evans所示。但是,在用户选择一个或单击按钮之前,我们可能不想查看它们的值。

这里似乎存在一些问题。可能还有更多代码?或者更多代码需要添加。无论如何,我会在函数实际运行时声明变量我打电话来

    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变量


正如Patrick Evans所说,在呈现单选按钮之前,您不能查找单选按钮的值(我们可以使用$(document.ready()来完成此操作)或者如Patrick Evans所示。但是,在用户选择一个或单击按钮之前,我们可能不想查看它们的值。

请在此处发布代码,并且只发布相关部分。完成,抱歉问题可能重复感谢您的回复,但当我在页面中键入代码时,我会收到更多错误。未捕获类型错误:无法读取空索引的属性“值”。html:39 domReady index.html:39未捕获引用错误:添加未定义索引。html:44计算器索引。html:44单击“不生成答案”以响应答案,或者单击“添加注释”在“答案”下,发表评论或重新编辑您的问题,以显示更改和新错误。但您得到这些错误是因为您正在检查“添加”、“subs”,等等。如果您需要检查这些参数,则需要在函数定义中设置
计算器
,并在调用计算器时传递这些参数。此外,您试图通过id获取输入元素,但将其id作为值,例如,您有
value=“secondNumber”
应该是
id=“secondNumber”
请在此处发布您的代码,并且只发布相关部分。完成,很抱歉可能会重复感谢您的回复,但当我在页面中键入代码时,会出现更多错误。未捕获类型错误:无法读取空索引的属性“值”。html:39 domReady index.html:39未捕获引用错误:添加未定义索引。html:44 calculator index.html:44单击“不做答案”以答复答案时,请单击答案下的“添加评论”并发表评论,或重新编辑您的问题以显示更改和新错误。但您会收到这些错误,因为您正在检查“添加”、“子项”,等等。如果您需要检查这些参数,则需要在函数定义中设置
计算器
,并在调用计算器时传递这些参数。此外,您试图通过id获取输入元素,但将其id作为值,例如,您有
value=“secondNumber”
应该是
id=“secondNumber”