2011-11-01 1 views
1

아니 생각하는 이유,하지만홀수 jQuery를 .insertAfter의 문제는 또한 다른 많은 순서를 변경 그것은

if ($(this).find(':nth-child(2)').is("span")) { 
    var moveForward = $(this).find(".postInfo.forVideo"); 
$(this).find(':nth-child(2)').insertAfter(moveForward); 

}

기본적으로 무엇을해야하고있다, 하지만 (DOM 구조 completley를 망쳐 놨어요) 소지품. 정말 이상한 방식으로.

enter image description here 당신이 볼 수 있듯이 enter image description here

전 :

이 붙여 넣은 코드를 통해이 데모 어렵다, 나는 당신이 불확실성을 볼 수 있습니다 단지 시각적으로 생각 , 그것은 거의 무작위로 "postInfo forVideo"div에서 요소를 끌어옵니다. 여기에서 볼 수 있습니다 (현재이 사이트가 개발됨에 따라) : http://syndex.me.

예를 들어 왜 "pagecurl"div에있는 폴리곤 요소를 꺼낸 다음 왜 내가 작업중인 스팬 이후에 던져 버릴까요? 너무 이상해!

+0

다음에 삽입하기 전에 moveForward.length> 0을 확인해야합니다. 또한 변수에 $ (this)를 래핑하는 것을 고려하십시오. 그래서 3 번 반복하지 않고 문맥을 엉망으로 만들지 마십시오. – jbabey

답변

1

nth-child는 해당 부모의 두 번째 자식 인 모든 요소를 ​​선택합니다. 요소의 두 번째 자식 만 원할 것입니다.

var secondChild = $(this).children().eq(2); 
if (secondChild.is("span")) { 
    var moveForward = $(this).find(".postInfo.forVideo"); 
    secondChild.insertAfter(moveForward); 
+0

아, 나는 마약처럼 느낍니다. 그게 당신이 두 번 확인하지 않고 인터넷 검색 "두 번째 자식 jquery 선택"얻을거야. – RGBK