如何添加onclick事件以在javascript中创建新元素

时间:2011-05-27 18:14:53

标签: javascript

我创建了一个label元素。我需要将onclick事件添加到...

function a(me) {
    var d=document.createElement("label");
    d.id=me.id;
    d.onClick="a(10)";
    d.innerHTML="welcome";
    document.body.appendChild(d);
}

HTML:

<label id="1" onclick="a(this)">aa</label>
<label id="2" onclick="a(this)">bb</label>
<label id="3" onclick="a(this)">aa</label>

实际上当我点击html中的三个标签中的任何一个时会发生什么。创建另一个标签并显示欢迎。现在,当我点击新创建的标签“欢迎”它没有显示任何东西......这是添加到新创建的标签的onclick事件不起作用.......任何建议...... ...........

3 个答案:

答案 0 :(得分:18)

您需要设置d.onclick=function(){a(1);};,请注意此处的情况很重要(不是“onClick”)。

<强> [编辑]

根据您的评论和更新的问题,我创建了一个jsFiddle to demonstrate,您可以将代码转换为可行的代码。

答案 1 :(得分:6)

d.setAttribute('onclick', 'alert(\'hello\');');

答案 2 :(得分:0)

为了创建HTML标记的属性,有时我们必须添加:

yourTag.src
yourTag.src = 'http://lolxd.com/404.png'

但是有一些特殊的属性,它们有不同的编辑方式:

yourTag.classList
yourTag.className

还有onclick属性,我们可以这样使用它:

// The first way
obj.onclick = function () { alert('lalala') }
// With the Event Listener
obj.addEventListener('click', function () { alert('lalala') }, false)
// Or, a text-render way
obj.setAttribute('onclick', 'alert(`lalala`)')

我建议您使用Event Listener方式,但请尝试全部:D