用户单击按钮时运行功能?

时间:2019-01-13 18:35:40

标签: javascript html5

我试图使用附加表中的附加按钮调用函数。

这是我的代码段。

function userAction(){
    window.alert("Hi");
   }

var newbtn=document.createElement('button');

   newbtn.setAttribute('type','button');
   newbtn.setAttribute('onclick',userAction);
   newbtn.setAttribute('class','btn btn-primary mt-4');
   newbtn.innerHTML='Review'
   tr.appendChild(newbtn);

点击下面的链接以获取完整代码

https://drive.google.com/file/d/1t6M5L_6tXYdGnemI8t0qlcFb93jkbx0I/view?usp=sharing

我希望当用户单击按钮时它会创建一个弹出警报,但是它似乎没有用。这是我检查元素时的样子:

<button type="button" onclick="function userAction(){
    window.alert(&quot;Hi&quot;);
     }" class="btn btn-primary mt-4">Review</button>

我可能做错了什么?谢谢!

2 个答案:

答案 0 :(得分:2)

添加Click Event Listener而不是setAttribute:

newbtn.addEventListener('click', () => userAction());

答案 1 :(得分:2)

onclick是属性而不是属性。因此,您不能使用setAttribute。

更改自:

newbtn.setAttribute('onclick',userAction);

收件人:

newbtn.onclick = userAction;

function userAction(){
    window.alert("Hi");
}

 var tr = document.querySelector('tr');
var newbtn=document.createElement('button');

newbtn.setAttribute('type','button');
newbtn.onclick = userAction;
newbtn.setAttribute('class','btn btn-primary mt-4');
newbtn.innerHTML='Review'
tr.appendChild(newbtn);
<table>
    <tbody>
    <tr><td>simple cell</td></tr>
    </tbody>
</table>