2014-04-19 3 views
1

cloneNodeinput 태그를 추가하고 새로운 onclick 값을 부여하려고합니다. 그것의 단지 input.onclick = function(){clicker(iden);};가 작동하지 않습니다. 이 예제의 유일한 목적은 ID를 변경하는 것처럼 onclick 태그를 변경하는 것입니다. 아무도 도와 줄 수 있습니까? 태그의 맨 아래에있는how to 'getelementsbytagname.onclick'

function() { 

을 제거

는 스크립트

<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 :이 예제의 유일한 목적은 ID를 변경하는 것처럼 onclick 태그를 변경하는 것입니다. –

+0

필자는 줄을 끝내고 세미콜론으로 줄을 끝내는 것이 좋습니다. 좋은 연습. – Lugia101101

답변

2

나를 위해 그것을 고정
<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

우연히 발견되었습니다. 우연이었습니다. 나는 그것을 수정했다. 그러나이 예제의 유일한 목적은 ID를 변경하는 것처럼 onclick 태그를 변경하는 것이다. –

0

만 일하는 것이 setAttribute를 사용하여 onlick 속성을 변경하려는 경우 :

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>