0

入力 (type="button") を生成し、onclick-Event を関数に設定して、パラメーターを渡す必要があります。オブジェクト全体を div に追加する必要があります。基本的にこれは私の試みですが、なぜうまくいかないのかわかりません。

コードを jsfiddle に貼り付けたので、簡単に再現できます。ここをクリックしてください

私は何を間違っていますか?試行錯誤しながら学んでいるので、何が悪いのか説明してください。どうもありがとう!

[編集] jsfiddle がいつかダウンする場合のために、ここに私が実行しようとしたコードがあります... :)

<!doctype html>
<html>
<head>
<title>onclick event example</title>
<script type="text/javascript" language="javascript">
var i = 0;
var h = new Array();

function addButton() {
    i++;
    var container = document.getElementById("check0");

    var h[i] = document.createElement("input");
    h[i].type = 'button';
    h[i].name = 'number' + i;
    h[i].value = "number" + i;
    h[i].id = 'number' + i;

    h[i].onclick = function() {
        showAlert(i)
    };

    container.appendChild(h[i]);
}

function showAlert(number) {
    alert("You clicked Button " + number);
}​
</script>
</head>
<body>
<div id="check0">
        <input type="button" value="klick mich" id="number0" onclick="addButton()"/>
</div>​
</body>
</html>
4

3 に答える 3

3

これがあなたのための固定フィドルです。

  • var h[i] = ...無効な JavaScript です。
  • jsfiddle の「JavaScript」フレームに記述した内容は実行されるonloadため、提供した HTML が実行されるとき、このコードはまだ存在しません (addButton()関数もそうではありません)。

    <script>
    var i = 0;
    var h = new Array();
    
    function addButton() {
        i++;
        var container = document.getElementById("check0");
    
        h[i] = document.createElement("input");
        h[i].type = 'button';
        h[i].name = 'number' + i;
        h[i].value = "number" + i;
        h[i].id = 'number' + i;
    
        h[i].onclick = function() {
            showAlert(i)
        };
    
        container.appendChild(h[i]);
    }
    
    function showAlert(number) {
        alert("You clicked Button " + number);
    }
    </script>
    
    <div id="check0">
        <input type="button" value="klick mich" id="number0" onclick="addButton()"/>
    </div>​
    
于 2012-05-22T16:30:38.260 に答える
0
          var x = document.getElementById('pagination');//pagination is an empty div in html
    var y ='';
    for(var i = 0; i <= (pageMax); i++){
        y = y+"<a id ='pageNumber"+i+"' onclick='changePage("+(i+1)+");'>"+(i+1)+"</a>\n ";
        } x.innerHTML=y }

これを使用して、テーブルのページネーションを作成しました。この関数は、ボタンが最大になるまで数字の行を作成します。'changePage("+(i+1)+"); ... 関数を呼び出して、ページ番号の i インデックス (ページの番号) を送信します。また、番号ごとに一意の ID を動的に作成します。

于 2012-05-22T18:31:19.170 に答える
0

h.push(...)配列内の作成されていない要素に送信しようとする代わりに、使用してみてください

于 2012-05-22T16:31:42.043 に答える