2013-08-24 4 views
0
function createInput(id){ 

    count++; 
    var name = "name" + count; 

    var text = "#" + id.id; 
    var newInput = "<input type='text' id='" + name + "' placeholder='' />"; 


    var myTextArea = document.getElementById(id.id); 
    myTextArea.innerHTML += newInput; 

    return false; 
} 

상기 함수 코드 내에서 DIV의 텍스트 영역에 입력 유형을 추가하여 첨가 원소에 null 반환한다. 입력 유형이 동적으로 표시되면 getElementById을 사용하여 요소 ID를 얻으려고하지만 null을 반환합니다. 여기서 무엇이 잘못 될지 알 수 있습니까? 새 입력 형식이 추가 된 것 같지만 입력 형식이 null 인 것 같습니다.GET 소자 동적 자바 스크립트

또한 페이지를 새로 고칠 때 새로 추가 된 입력 유형이 사라지는 것을 알고 있습니다. 새로운 동적 입력 유형을 페이지에 그대로 유지하는 방법은 무엇입니까?

+1

어떻게 함수를 호출합니까? 'id'는'id' 속성을 가진 객체입니까? – adeneo

+0

유언장에 액세스하려고하는 전체 코드를 게시 할 수 있습니까 – iJade

+1

질문이 완전히 명확하지 않은 것으로 보입니다. http://jsfiddle.net에서 작동 예제를 만드십시오. – IvanH

답변

0

동적으로 생성 된 콘텐츠는 페이지에서만 일시적입니다. 페이지가 새로 고쳐지면 다시 페이지가 새로 고쳐집니다. 다시 onload Event 또는 .ready() 페이지에 다시 작성해야합니다 (cookie 또는 HTML5 storage에 정보를 저장하십시오).

코드의 작업 예제를 만들려고했습니다 : http://jsfiddle.net/G2PKF/1/.

<div id="area1" onclick="createInput(this)" ></div> 
<br/> 
<div id="area2" onclick="createInput(this)"></div> 
<input type="button" onclick="alert(document.getElementById('name' + count));alert(document.getElementById('name' + count).outerHTML)" value="Access Last Element" /> 

사각형을 클릭하면 입력이 추가됩니다. 버튼은 추가 된 마지막 요소를 표시 할 수 있습니다.

모든 것이 예상대로 작동합니다. 나는 당신의 기능에 어떤 문제도 보지 못했다.