jQuery의 each() 함수가 비 블로킹입니까?jQuery each() non-blocking?
아래 예에서 "각 테스트"가 먼저 기록되지만 각 테스트에서 "각각의 테스트"가 먼저 기록됩니다.
이렇게하면 오류가 반환되기 전에 루프가 본문 (때로는 문서) 요소까지 실행됩니다.
나는 둘 중 하나의 요소 (firstp와 lastp)가 형제 인 경우에는 그 둘을 감싸려고하고있다.
하지만 each() 함수의 성능과 non-blocking인지 궁금합니다.
while(firstp[0] !== lastp[0]){
//If parents are siblings, this will do for wrapping.
var isS = false;
firstp.siblings().each(function(index, el){
console.log("test in each");
if(jQuery(el)[0] === lastp[0]){
isS = true;
return true;
}
});
console.log("test out of each");
if(isS === true){ break; }
firstp = firstp.parent();
lastp = lastp.parent();
}
편집 :
죄송합니다 사람. 이것은 잘못된 경보였습니다. 바울이 맞습니다. 내 HTML에는 실제로 firstp와 일치하는 두 요소가 있습니다. 나는 이것을 깨닫지 못 했으므로 첫 번째 사람은 형제가 없어서 오류가 발생했습니다. 나는 두 번째 요소를 전체적으로보고 있었다.
하지만 그 과정에서 뭔가를 배웠습니다. 시간을내어 답변 해 주셔서 감사합니다.
때 "각 밖으로 테스트"당신은 또한 콘솔에 로그인 "각각의 테스트"를 참조 할 기록됩니다? – ShankarSangoli
@Shankar 예, 두 텍스트가 모두 예상대로 기록되지 않습니다. 아마 나는 명백한 것을 놓치고 있습니다. –
@Senica : 콘솔 로그 메시지가 텍스트에서 어떤 명백한 관계도 나타내지 않을 때 "주문"에 대한 주장을 할 수 있다고 생각하지 않습니다. 메시지는 외부 루프의 다른 반복에서 인쇄 될 수 있으며 결코 알 수 없습니다. –