2014-04-19 39 views
1

我想讓我的cloneNode附加input標記並給它一個新的onclick值。它只是input.onclick = function(){clicker(iden);};不起作用。這個例子的唯一目的是改變onclick標籤,就像我設法改變ID一樣。任何人都可以幫忙嗎?如何'getelementsbytagname.onclick'

腳本

<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> 
+1

我看不出您的代碼:http://jsfiddle.net/8hD7g/1/ – sudhnk

+0

@aslan:此示例的唯一目的是更改onclick標記,就像我設法更改標識。 –

+0

我會建議用分號結束這樣的行,以便這樣做。良好的做法。 – Lugia101101

回答

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> 
+0

看上去很好,那是偶然的。我已經修改它,但這個例子的唯一目的是改變onclick標籤,就像我設法改變ID一樣 –

0

如果你只嘗試使用setAttribute將努力改變點擊數屬性:

input.setAttribute("onclick", "clicker(" + iden + ");"); 
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>