2

我试图让我cloneNode附加input标签并给它一个新onclick值。它只是input.onclick = function(){clicker(iden);};那不起作用。此示例的唯一目的是更改 onclick 标记,就像我设法更改 ID 一样。有人可以帮忙吗?

脚本

<script>
  iden = 0

  function clicker(x) {
    iden++

    var ent = document.getElementById('ent').cloneNode(true);

    ent.id = "ent"+iden;
    var input = ent.getElementsByTagName('input')[0];

    input.id = "inp"+iden;
    input.onclick = function(){clicker(iden);};

    document.body.appendChild(ent);
  }
</script>

身体

<body>
  <div id="ent">
    <input id="inp" onclick="clicker()">
  </div>
<body>
4

3 回答 3

2

删除

function () {

在您的标签底部为我修复了它

<html>
<body>
    <script>
    iden = 0

    function clicker(x) {
        iden++

        var ent = document.getElementById('ent').cloneNode(true);

        ent.id = "ent"+iden;
        var input = ent.getElementsByTagName('input')[0];

        input.id = "inp"+iden;
        input.onclick = function(){
            clicker(iden);
        };

        document.body.appendChild(ent);
    }
    </script>
    <div id="ent">
    <input id="inp" onclick="clicker()">
    </div>
</body>
</html>
于 2014-04-19T09:27:25.537 回答
1

JS:

function clicker(iden) {  
    iden = (!iden) ?  '' : iden;


    var ent = document.getElementById('ent'+ iden ).cloneNode(true);
    iden++;
    ent.id = "ent" + iden;

    var input = ent.childNodes[1];
    input.id = "inp" + iden;

    input.onclick = function () {
        clicker(iden);
    };

    document.body.appendChild(ent);
}

HTML:

<div id="ent">
    <input id="inp" onclick="clicker()">
</div>
于 2014-04-19T10:19:53.053 回答
0

如果您只是尝试使用以下方法更改 onlick 属性setAttribute

input.setAttribute("onclick", "clicker(" + iden + ");");
于 2014-04-19T10:10:41.747 回答