2014-12-09 4 views
0

저는 자바 스크립트를 배우는 중이며 교회의 탁아 서비스를위한 지불 계산기를 만들려고합니다. id "children"이있는 div에 div 클래스에 추가 할 클래스 "child"(그 안에있는 모든 내용)를 원합니다. 간단한 div가 키 누르기로 추가되었지만 세 번째를 추가하지는 않습니다. 둘 이상의 div를 추가하려면 어떻게해야합니까? div를 모든 'stuff'와 함께 추가하려면 어떻게해야합니까? 코드는 다음과 같습니다 :keypress 이벤트를 사용하여 요소 추가하기

<div id="input"> 
    <div id="children"> 
     <div class="child"> 
     <h2>Choose Child's Class</h2> 
     <select id="primary" class="selector"> 
      <option value=" ">Select Class</option> 
      <option value=200>Infants</option> 
      <option value=175>Wobblers</option> 
      <option value=175>Toddlers</option> 
      <option value=165>PreSchool 3's</option> 
      <option value=165>PreK 4's</option> 
      <option value=75>Schooler Before &amp; After</option> 
      <option value=40>Schooler Before Only</option> 
      <option value=65>Schooler After Only</option> 
      <option value=60>Schooler AFA Before &amp; After</option> 
      <option value=20>Schooler AFA Before Only</option> 
      <option value=30>Schooler AFA After Only</option> 
      <option value=40>Part Time</option> 
     </select> 
     </div><!--closes child class div--> 
    </div><!--closes children id dive--> 

    <h3> Press any key on your keyboard to add another child</h3> 

및 자바 스크립트 스타터 그래서

$(document).ready(function(){ 
    var $newChild=$('<div class="child">Testing</div>'); 
    $(document).keyup(function(){ 
     $newChild.appendTo($('#children')); 
    }); 
}); 

답변

2

이 당신의 자바 스크립트 그래서 당신은 추가 할 수 있습니다 많은 div를 같이하는 방법입니다

$(document).ready(function(){ 
    $(document).on('keyup', function(){ 
     var $newChild=$('<div class="child">Testing</div>'); 
     $newChild.appendTo($('#children')); 
    }); 
}); 

또는

$(document).ready(function(){ 
    $(document).on('keyup', function(){ 
     var $newChild=$('<div class="child">Testing</div>'); 
     $('#children').append($newChild); 
    }); 
}); 

당신은 clarif해야합니다. y 질문의 나머지 부분은 왜 당신이 물건을 의미합니까?

$(document).ready(function() { 
    var childHtml = "<div class='child'>Child</div>"; 
    $(document).keyup(function() {   
     $('#children').append(childHtml); 
    }); 
}); 

jsFiddle :

+0

가 정답입니다,하지만 당신은 이유를 알 수 있습니까? (저는 OP가 아닙니다.) – webeno

+0

이유는 그가 범위 밖의 변수를 선언했기 때문입니다. 변수가 처음에는 범위에 있지만 다음에 이벤트가 트리거되면 변수가 범위를 벗어나 정의되지 않습니다. . – Marko

+0

잡았다, 고마워! – webeno

1

귀하의 jQuery를 같은 것을 할 필요가 http://jsfiddle.net/ek922tz2/7/

+0

이 아니라면 .keypress가 .keyup보다 효과가 있습니까? – brybott

+0

실제로 사용자의 사용에 따라 달라질 수 있습니다. keypress는 입력 문자 만 받아들이므로 화살표와 같은 키는 트리거하지 않습니다. OP가 그것을 사용했기 때문에 나는 'keyup'만 가지고 갔다. – ev0lution37

+0

키 누르기와 관련된 문제는 키를 누르고 있으면 우연히 너무 많은 항목이 추가되어 문제가 발생한다는 것입니다. – Marko

관련 문제