我在html中动态添加一个按钮,如下所示: 点击该按钮我想调用Javascript函数:
var but = document.createElement("button");
but.value="delete row";
but.setAttribute("onclick","callJavascriptFunction()");
//this is not working
but.onclick="callJavascriptFunction()"
//this is also not working
document.getElementById("but").onclick="callJavascriptFunction()"
//this is also not working
but.id="but"+inc;
有什么方法可以解决这个问题吗?Plz帮助我。, 提前谢谢
答案 0 :(得分:20)
试试这个:
but.onclick = callJavascriptFunction;
或通过用另一个元素包装它来创建按钮并使用innerHTML:
var span = document.createElement('span');
span.innerHTML = '<button id="but' + inc +'" onclick="callJavascriptFunction()" />';
答案 1 :(得分:11)
从无效的表达式中删除()将获得所需的结果。
but.setAttribute("onclick",callJavascriptFunction);
but.onclick= callJavascriptFunction;
document.getElementById("but").onclick=callJavascriptFunction;
答案 2 :(得分:4)
尝试
but.addEventListener('click', yourFunction)
请注意函数名后面的括号()
的缺席。这是因为您正在分配该功能,而不是调用它。
答案 3 :(得分:3)
我遇到了类似的问题,但这些修复都没有奏效。问题是我的按钮还没有出现在页面上。对此的修复最终是从这个:
//Bad code.
var btn = document.createElement('button');
btn.onClick = function() { console.log("hey"); }
到此:
//Working Code. I don't like it, but it works.
var btn = document.createElement('button');
var wrapper = document.createElement('div');
wrapper.appendChild(btn);
document.body.appendChild(wrapper);
var buttons = wrapper.getElementsByTagName("BUTTON");
buttons[0].onclick = function(){ console.log("hey"); }
我完全不知道为什么会这样。将按钮添加到页面并以任何其他方式引用它都不起作用。
答案 4 :(得分:3)
这段代码对我有用,看起来更简单。必须使用特定参数调用函数。
var btn = document.createElement("BUTTON"); //<button> element
var t = document.createTextNode("MyButton"); // Create a text node
btn.appendChild(t);
btn.onclick = function(){myFunction(myparameter)};
document.getElementById("myView").appendChild(btn);//to show on myView
答案 5 :(得分:3)
but.onclick = function() { yourjavascriptfunction();};
或
but.onclick = function() { functionwithparam(param);};
答案 6 :(得分:2)
试试这个:
var inputTag = document.createElement("div");
inputTag.innerHTML = "<input type = 'button' value = 'oooh' onClick = 'your_function_name()'>";
document.body.appendChild(inputTag);
这会在DIV内部创建一个完美的按钮!
答案 7 :(得分:1)
but.onclick = callJavascriptFunction;
没有双引号没有括号。