나는 ".hidden"
클래스를 보유하고 있으며 실시간으로 DOM 요소를 작성합니다. 그래서 같은 간단한 코드를 얻을 :요소 : 첫 번째 자식 강제 재평가
...
<div class="hidden">1</div>
<div class="hidden">2</div>
<div class="hidden">3</div>
...
내 CSS 정의가 단순한 이상이다 :
.hidden {
display: none;
}
.hidden:first-child {
display: block;
}
모든 좋은 모두가 행복입니다. 이제 다음과 같이하면 : $('.hidden:first-child').remove()
제거되지만 다음 요소는 나타나지 않습니다. 개발자 콘솔에서 DOM 노드를 클릭했을 때만 나타나는 것 같습니다 (Ctrl + Shift + i in chrome).
어떤 생각으로 브라우저가 CSS 규칙을 평가하도록 할 것입니까?
업데이트 이것은 jsFiddle test case입니다. 버튼을 클릭하면 "0"이 표시되고 다른 번호는 없으며 "1", "2"등이됩니다.
결론 : 이상하게도, remove() 전에 fadeOut (400)을 제거하면 이상하게 작동합니다.
당신이 테스트 케이스를 재현 할 수는? 나는 브라우저가 이미 DOM이 바뀔 때마다 CSS를 다시 평가할 것이라고 확신한다. – BoltClock
@Sven Bieder :': first-child'는 그 내용이 아닌 요소를 봅니다. 첫 번째'.hidden' 요소는 여전히 첫 번째 자식입니다 (이 모든 요소에 클래스가 있다고 가정).이를 제거하면 두 번째 요소가 첫 번째 요소가됩니다. – BoltClock
http://jsfiddle.net/umt3q/ 잘 작동합니다. – jAndy