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

尝试使用h.push(...)而不是尝试发送到数组中的未创建元素

于 2012-05-22T16:31:42.043 回答
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 回答