这是我第一次尝试使用Javascript,因此这可能是一个我没有经验的简单问题。
我正在尝试根据用户名中第一个字母在字母A-M之间的条件创建一个计算器操作员按钮。我已经使用示例用户名对其进行了测试,并且我创建的条件成功运行。但是,我当前在此语句中得到“ TypeError:无法设置未定义的属性'className'”:
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);
我已经在给它一个className之前定义了var“ add”,所以我不确定什么是未定义的。
答案 0 :(得分:0)
在您的代码段中,有些事情需要更正。
首先,可以使用新的ES6变量声明关键字var
和let
来代替const
,而可以用谷歌搜索这三个关键字之间的区别以及为什么要使用新关键字
为回答您的问题,抛出的错误是TypeError: cannot set property className of undefined
。这意味着您试图以不合适的方式使用add
。
您可以尝试执行add.className += 'operator'
或add.classList.add('operator')
。