2

私は次のスクリプトを持っています

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関数を機能させたい(テキストエリアの下に追加された各編集ボタンに対して)。この状態では、スクリプトは[テキストの追加]ボタンを押すと警告を発します。

以下はhtmlです。PSあなたが助けることができれば、私は純粋なJavaScriptでこれが必要です。ありがとう

    <textarea id="usertext"></textarea>
    <button onClick="appendText()">Add text </button>


    <div id="addedText" style="float:left">
    </div>
4

1 に答える 1

2

それ以外の:

document.getElementById('button_click').setAttribute('onClick', makeAreaEditable());

これを行う必要があります:

editbutton.onclick = makeAreaEditable;

関数の名前は、実行する場合を除いて角かっこなしで表示されます

を使用してDOMから要素を取得する代わりに、作成済みの変数document.getElementById('button_click') を使用できます。editbuttonこのオブジェクトはあなたが探しているDOM要素です

サイドノート:それを行う標準的な方法はonclick、要素を追加する前にプロパティを追加することです

于 2013-01-15T14:21:12.117 に答える