Javascript 如何获取已创建的元素(按钮)以运行函数?
这是我用来创建按钮的代码:Javascript 如何获取已创建的元素(按钮)以运行函数?,javascript,Javascript,这是我用来创建按钮的代码: var dfom = document.createElement('div'); dfom.setAttribute("id","options"); dfom.innerHTML = "<input type=\"button\" value=\"Say HI\" onclick=\get()\ />"; dfom.style.padding = '10px'; document.body.insertBefore(dfom, document.bod
var dfom = document.createElement('div');
dfom.setAttribute("id","options");
dfom.innerHTML = "<input type=\"button\" value=\"Say HI\" onclick=\get()\ />";
dfom.style.padding = '10px';
document.body.insertBefore(dfom, document.body.firstChild);
但是,当我单击按钮时,什么也没有发生。需要帮忙吗?谢谢 函数名也应该用引号括起来,即
onClick=“get();”
。对于Instance,只要有时间,也要阅读事件侦听器。函数名也应该用引号括起来,即onClick=“get();”
。如果您想编写正确的JavaScript代码,则应按照以下步骤进行:
var dfom = document.createElement("div"),
button = document.createElement("input");
button.type = "button";
button.value = "Say HI";
button.addEventListener("click", function() {
alert("HI");
}, false);
dfom.id = "options";
dfom.style.padding = "10px";
dfom.appendChild(button);
document.body.insertBefore(dfom, document.body.firstChild);
演示:如果您想编写正确的JavaScript代码,那么您应该按照以下步骤进行:
var dfom = document.createElement("div"),
button = document.createElement("input");
button.type = "button";
button.value = "Say HI";
button.addEventListener("click", function() {
alert("HI");
}, false);
dfom.id = "options";
dfom.style.padding = "10px";
dfom.appendChild(button);
document.body.insertBefore(dfom, document.body.firstChild);
演示:
\
应该是\“
围绕get()
,但是还有更多的注意事项:即get
函数实际上必须在onload
或另一个回调之外定义,因为它需要全局可用。您需要类似的设置:
…它在onLoad
回调之外定义get
,使其可用于onclick
另外,使用标准事件绑定,而不是单击onclick
:
dfom.innerHTML = "<input type=\"button\" value=\"Say HI\">";
dfom.firstChild.addEventListener('click', get);
dfom.innerHTML=“”;
dfom.firstChild.addEventListener('click',get);
在
get()
周围的\
应该是\“
,但是还有更多的注意事项:即get
函数实际上必须在onload
或另一个回调之外定义,因为它需要全局可用。您需要类似于以下内容的设置:
…它在onLoad
回调之外定义get
,使其可用于onclick
另外,使用标准事件绑定,而不是单击onclick
:
dfom.innerHTML = "<input type=\"button\" value=\"Say HI\">";
dfom.firstChild.addEventListener('click', get);
dfom.innerHTML=“”;
dfom.firstChild.addEventListener('click',get);
以下内容对我很有用:
window.onload = function() {
var dfom = document.createElement('div');
dfom.id = "options";
dfom.innerHTML = '<input type="button" value="Say HI" onclick="get()">';
dfom.style.padding = '10px';
document.body.insertBefore(dfom, document.body.children[0]);
}
function get() {
alert("HI");
}
window.onload=function(){
var dfom=document.createElement('div');
dfom.id=“选项”;
dfom.innerHTML='';
dfom.style.padding='10px';
document.body.insertBefore(dfom,document.body.children[0]);
}
函数get(){
警报(“HI”);
}
需要注意的一些事项:
以下是我的作品:
window.onload = function() {
var dfom = document.createElement('div');
dfom.id = "options";
dfom.innerHTML = '<input type="button" value="Say HI" onclick="get()">';
dfom.style.padding = '10px';
document.body.insertBefore(dfom, document.body.children[0]);
}
function get() {
alert("HI");
}
window.onload=function(){
var dfom=document.createElement('div');
dfom.id=“选项”;
dfom.innerHTML='';
dfom.style.padding='10px';
document.body.insertBefore(dfom,document.body.children[0]);
}
函数get(){
警报(“HI”);
}
需要注意的一些事项:
您应该使用
firstChild
而不是children[0]
。哈,谢谢…仍然无法解决我的更大问题。您的代码是否在body元素存在后运行?您应该使用firstChild
而不是children[0]
。哈,谢谢…但仍然无法解决我的更大问题。您的代码是否在body元素存在后运行?这样做没有帮助。我将其更改为:dfom.innerHTML=“”+1-但属性名称的大写与此无关。;-)@老习惯难以改掉;)@用户2213591它绝对应该。您是如何实现get()
函数的?这就是问题所在:P谢谢!这样做无济于事。我将其更改为:dfom.innerHTML=“”+1-但属性名称的大写与此无关。;-)@老习惯难以改掉;)@用户2213591它绝对应该。您是如何实现get()
函数的?这就是问题所在:P谢谢!先生,你是上帝!非常感谢。@user2213591还不是上帝:)但是学习好的编程风格永远不会晚。先生,你是上帝!非常感谢。@user2213591还不是上帝:)但是学习好的编程风格永远不会晚。。。。尽量避免使用innerHTML
,因为它的速度太慢了。+1问题在于没有使用双引号的反斜杠。语句get函数实际上必须在创建元素之前定义不正确,函数定义将始终在运行任何代码之前进行处理,因此它将始终在创建按钮之前进行定义(如果按钮按原样由代码创建).@VisioN你有什么证据支持这一说法吗?@RobG你是对的;我认为,如果函数是在onLoad
中定义的,那么它将不会在全局范围内可用,因此这个问题:。。。尽量避免使用innerHTML
,因为它的速度太慢了。+1问题在于没有使用双引号的反斜杠。语句get函数实际上必须在元素创建之前定义不正确,函数定义将始终在任何代码运行之前进行处理,因此它将始终在b