Onclick";运行一个函数";使用外部javascript

Onclick";运行一个函数";使用外部javascript,javascript,html,css,web,Javascript,Html,Css,Web,我创建了一个简单的项目,在这个项目中,我单击一个按钮,然后创建另一个按钮(按钮2),前一个按钮应该消失,这很好。 但当我点击按钮2时,应该执行一个特定的功能。我被困在这里了 函数myFunction1(){ var x=document.createElement(“按钮”); var t=document.createTextNode(“按钮2”); x、 setAttribute('id','bt2'); x、 儿童(t); 文件.正文.附件(x); var a=document.getE

我创建了一个简单的项目,在这个项目中,我单击一个按钮,然后创建另一个按钮(按钮2),前一个按钮应该消失,这很好。 但当我点击按钮2时,应该执行一个特定的功能。我被困在这里了

函数myFunction1(){
var x=document.createElement(“按钮”);
var t=document.createTextNode(“按钮2”);
x、 setAttribute('id','bt2');
x、 儿童(t);
文件.正文.附件(x);
var a=document.getElementById('bt1');
a、 style.display='none';
}
var item=document.getElementById('bt2');
item.onclick=myFunction;
函数myFunction(){
document.getElementsByTagName(“BODY”)[0].style.backgroundColor=“lime”;
}

按钮1

您试图将
onclick
属性设置为DOM中尚不存在的元素(它将在单击按钮1后创建),因此在创建第二个按钮后,将最后一个代码移到
myFunction1

函数myFunction1(){
var b=document.body;
var x=document.createElement(“按钮”);
var t=document.createTextNode(“按钮2”);
x、 id='bt2';
x、 儿童(t);
b、 儿童(x);
var btt1=document.getElementById('bt1');
btt1.style.display='none';
var btt2=document.getElementById('bt2');
btt2.addEventListener('click',function(){
b、 style.backgroundColor=“石灰”;
});
}

按钮1

实际上item1为空,因为在单击按钮1之前,示例中没有#bt2元素。因此,您不能将属性onclick分配给空引用。我了解任何替代方法?如果我想再次显示隐藏按钮TT1.style.display='block';行吗?行,行。
It says cannot set property to null.