Javascript计算器:如何根据条件创建操作符按钮?
这是我第一次尝试使用Javascript,所以这可能是一个我没有经验的简单问题 我试图创建一个计算器操作符按钮,它基于用户名的第一个字母在字母表中的a-m之间的条件。我已经用一个示例用户名对此进行了测试,我创建的条件成功地工作了。但是,我目前在这条语句中得到一个“TypeError:无法设置未定义的属性'className'”:Javascript计算器:如何根据条件创建操作符按钮?,javascript,button,calculator,Javascript,Button,Calculator,这是我第一次尝试使用Javascript,所以这可能是一个我没有经验的简单问题 我试图创建一个计算器操作符按钮,它基于用户名的第一个字母在字母表中的a-m之间的条件。我已经用一个示例用户名对此进行了测试,我创建的条件成功地工作了。但是,我目前在这条语句中得到一个“TypeError:无法设置未定义的属性'className'”: if (let_am.includes(username.split("")[0])){ var add = document.
if (let_am.includes(username.split("")[0])){
var add = document.createElement("button");
add.className = "operator";
add.dataAction = "add";
add.innerHTML = "+";
var body = document.getElementsByTagName("div")[0];
body.appendChild(add);
在给它一个类名之前,我已经定义了var“add”,所以我不确定什么是未定义的。从您的代码片段中,有一些事情需要更正。 首先,您可以使用新的ES6变量声明关键字,即
let
和const
,而不是使用var
,您可以通过谷歌搜索这三个关键字之间的差异以及为什么要使用新关键字
要回答您的问题,抛出的错误是TypeError:无法设置未定义的属性className
。这意味着您试图以不适当的方式使用add
您可以尝试执行此操作
add.className+='operator'
或add.classList.add('operator')
是否绝对确定错误在代码的那一行?注意:不相关,但不需要调用.split(“”
)。把那部分去掉吧。我不认为你说的是错的。