无法向按钮添加属性
Cant add attributes to buttons
所以我正在创建一个基于html的游戏。我一直在测试,但有一件事我想不通。这是我的代码:
<button onclick="test()">
Click Me!
</button>
<script>
function test(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Button")
btn.appendChild(name);
document.body.appendChild(btn);
}
</script>
所以这个代码确实有效。但是,添加的按钮除了在单击时更改颜色之外,没有任何作用。如何使添加的按钮运行一个函数?
编辑:建议之后,我有了这个代码:
<button onclick="test()">
Click Me!
</button>
<script>
function test(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Button")
btn.appendChild(name);
document.body.appendChild(btn);
btn.onclick = test();
}
</script>
当点击第一个按钮时,它会创建大量的按钮。
第2版:我现在开始工作了。
<button onclick="test()">
Click Me!
</button>
<script>
function test(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Button")
btn.appendChild(name);
document.body.appendChild(btn);
btn.onclick = function(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Button")
btn.appendChild(name);
document.body.appendChild(btn);
}
}
</script>
谢谢大家的帮助!:)
编辑3:。。。另一件事不起作用。我将代码更新为:
<button onclick="test()">
Click Me!
</button>
<script>
function test(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Click Me!")
btn.appendChild(name);
document.body.appendChild(btn);
btn.onclick = function(){
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Click Me!")
btn.appendChild(name);
document.body.appendChild(btn);
btn.onclick = test()
}
}
</script>
但是,当我单击从原始按钮创建的按钮时,它会创建2而不是1,这正是我想要的。此外,两者中的第一个没有任何作用。我该怎么解决这个问题?
我相信您的困惑是由于您动态添加元素(在本例中为按钮),然后想要访问所述元素(按钮)。
命名这些新元素最简单的方法是首先分配创建它们的语句
document.createElement("BUTTON");
到一个变量,你确实做到了!
btn = document.createElement("BUTTON");
因此,请记住,您可以对创建的变量执行一些操作,比如给它一个类或ID名称以供访问。
btn.setAttribute('class', 'btn-class');
现在,您可以从CSS中为任何样式元素分配类名为btn-class
或任何其他您想要选择的元素。
以下是一个JSFiddle,它表明:https://jsfiddle.net/dg1amubr/4/
为按钮添加onclick函数
例如
function myFunction() {
// onclick stuff
}
element.onclick = myFunction; // Assigned
[更新]
为了更容易,我创建了一个小提琴
https://jsfiddle.net/33h3bgxc/1/
使用addEventListener
附加带有新按钮的事件。希望这个片段对有用
function test(){
var btn = document.createElement("BUTTON");
var name = document.createTextNode("Button");
btn.id = "newButton"
btn.appendChild(name);
document.body.appendChild(btn);
var _getNewButton = document.getElementById('newButton');
_getNewButton.addEventListener('click',function(){
alert('New Button');
})
}
// You can also directly attach addEventListener without going via id.
// btn.addEventListener('click',function(){ ..})
工作示例
您需要为该按钮分配一个事件处理程序。
btn.addEventListener('click', function(event) {
console.log('I was clicked');
});
function test() {
var btn = document.createElement("BUTTON")
var name = document.createTextNode("Button")
btn.appendChild(name);
btn.addEventListener('click', function(event) {
alert('I was clicked');
});
document.body.appendChild(btn);
}
<button onclick="test()">
Click Me!
</button>
可能需要使用类似的东西
btn.addEventListener('click',callback_function)
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何向JSON数组动态添加属性
- 如何在 JavaScript 中以递增顺序在对象中添加属性
- 挖空.js - 向服务器端发送的数据添加属性
- 借助for循环和数组在对象中添加属性
- 新手查询动态添加属性
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用javascript为网页中的所有图像添加属性
- Javascript - 如何向对象构造函数添加属性
- 向插件添加属性(不是默认方式)
- 如何使用 Ext.js 向内存中的标记添加属性
- Gmaps4rails:如何向 json 添加属性
- 在运行时向 Javascript 对象添加属性
- 从Input Javascript在脚本中添加属性
- JQuery:如何检查复选框是否被选中并向字段添加属性
- 向构造函数或原型添加属性之间的区别
- 向对象动态添加属性
- 无法向按钮添加属性
- 定义一个函数,然后为其添加属性
- 如何通过javarscript或jquery在数组中添加属性复选框(checked=true)