동적으로 생성 된 div.box
및 .boxIn
에 각 단어의 문자를 추가하려고하지만 코드는 각 상자에 마지막 단어를 추가하는 것입니다. 이 문제를 해결하는 방법과이 문제가 발생하는 이유를 알려주십시오. 두 개의 루프를 하나의 루프로 병합하는 방법이 있습니까?문자열 배열의 문자를 각 동적 div에 추가하는 문제
이것은 당신이 모든 .boxIn
요소의 HTML 콘텐츠를 재정의하기 때문이다
var letters = [];
var str = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
var letters = str.split(",");
var word = "Test App";
for (var i = 0; i < word.length; i++) {
$('<div class="box"><div class="boxIn"></div></div>').appendTo(".wrapper");
}
for (var j = 0; j < word.length; j++) {
$('.boxIn').html(word.charAt(j)).addClass('animated fadeInDown');
}
감사 정의를! :-)하지만 iterator에서 j와 같은 다른 변수를 사용할 정도로 충분하지 않습니까? –
@MonaCoder 환영합니다! 불행히도 귀하의 의견에있는 질문을 이해하지 못했습니다. 실제로 두 번째 루프는 필요하지 않습니다. 첫 번째 루프에서이 작업을 수행하는 것이 더 효율적입니다. 이렇게하면 각 반복에서 전체 DOM을 쿼리 할 필요가 없습니다. 적어도 두 번째 루프 앞에'$ ('. boxIn') 컬렉션을 캐시 할 수 있다면'$ collection.eq (j) ... ' – undefined