这里的初级开发人员:我是一名技术作家,涉猎代码,但是我正尝试将工具包扩展到Web开发中。我一直在尝试使用闭包,但遇到了一些问题。我正在尝试创建一个按钮,说我的猫有多可爱,但它没有运行。这不适用于任何特定项目,我只是在尝试正确地关闭闭包。我很高兴代码能够正常工作,但我真的很想让它与HTML正确交互。
最初,它给出的错误是找不到变量“ cats”,所以我尝试在JS中添加此字符串:
document.getElementById("button").onclick = x();
但是,这引发了一个完全不同的错误(请参见下文)。我不太确定如何使它与HTML连接,并且在线指南并没有真正帮助,有一些帖子对此进行了详细说明,但我不明白他们在说什么。他们倾向于回答一个非常具体的问题,该问题对OP有所帮助,但并未说明我的代码出了什么问题。我已将其返回到开始的地方,这使我们可以:
这是HTML按钮:
<input id="clickMe" type="button" value="How great is Beans?" onclick="x();" />
这是JS:
function cats() {
let cuteness = 5;
function myCatBeans() {
const attitude = 5;
console.log('My cat Beans is 10/' + (cuteness + attitude));
}
return myCatBeans;
}
let x = cats();
x();
在控制台上,预期结果是“我的猫豆是10/10”。当我将代码作为纯JS运行时会出现这种情况,但是当我单击按钮时却没有出现。单击带有当前代码的按钮将引发
Can't find variable: cats
。我认为这是因为HTML在关闭方面的表现不佳。
如果我尝试在JS中使用以下内容创建按钮:
document.getElementById("button").onclick = x();
我得到:
[Error] TypeError: null is not an object (evaluating 'document.getElementById("button").onclick = x()')
我知道有人指出解决方案时我会踢自己,但我一直在尝试阅读有关这些错误的其他文章,但我并未真正关注。 JSFiddle供那些想看完整内容的人使用:link。
谢谢您的时间!