我有以下脚本
var counter = 0;
function appendText(){
var text = document.getElementById('usertext').value;
if ( document.getElementById('usertext').value ){
var div = document.createElement('div');
div.className = 'divex';
var li = document.createElement('li');
li.setAttribute('id', 'list');
div.appendChild(li);
var texty = document.createTextNode(text);
var bigdiv = document.getElementById('addedText');
var editbutton = document.createElement('BUTTON');
editbutton.setAttribute('id', 'button_click');
var buttontext = document.createTextNode('Edit');
editbutton.appendChild(buttontext);
bigdiv.appendChild(li).appendChild(texty);
bigdiv.appendChild(li).appendChild(editbutton);
document.getElementById('button_click').setAttribute('onClick', makeAreaEditable());
document.getElementById('usertext').value = "";
counter++;
}
};
var makeAreaEditable = function(){
alert('Hello world!');
};
我希望makeAreaeditable函数在按下Edit按钮时起作用(对于textarea下面的每个编辑按钮)。在这种状态下,脚本会在我点击Addtext按钮时提醒我。
以下是html。附:如果你能提供帮助,我需要在纯JavaScript中使用它。感谢
<textarea id="usertext"></textarea>
<button onClick="appendText()">Add text </button>
<div id="addedText" style="float:left">
</div>
答案 0 :(得分:2)
而不是:
document.getElementById('button_click').setAttribute('onClick', makeAreaEditable());
你需要这样做:
editbutton.onclick = makeAreaEditable;
除非你想执行它,否则函数的名称不带括号
而不是使用document.getElementById('button_click')
从DOM中获取元素
您可以使用已创建的editbutton
变量。这个对象是你要找的DOM元素
侧面说明: 标准的方法是在附加元素
之前添加onclick
属性