2011-02-11 4 views
1

jQuery의 replaceWith를 사용하여 하나의 요소를 세 개의 다른 요소로 대체하려고하는데 작동하지 않는 것 같습니다.jQuery replaceWith가 세 개의 요소로 교체하는 동안 작동하지 않습니다.

HTML :

<span>first</span> 
<span>second</span> 
<span>third</span> 

JS :

var spans = $("span"); 
spans.eq(1).replaceWith("<span></span><span></span><span></span>"); 

나는 쓰기를 해요 경우가 발생한다 :

<span>first</span> 
<span></span><span></span><span></span> 
<span>third</span> 

하지만 아무것도 ... 어떤 생각을 변경하지?

편집 : 이것은 예로서 의미되었다, 나는 (? 차이가 그것은 그렇게 나타납니다 ...) 계정으로 실제 DOM과 생성 된 DOM 사이의 차이를 고려하지 않은

var spans = $("<span>first</span><span>second</span><span>third</span>"); 
spans.eq(1).replaceWith($("<span></span><span></span><span></span>")); 

그래서 제 코드를 더 정확하게 묘사합니다.

+0

작품이었다 http://jsfiddle.net/yads/z9VDw/ – Vadim

+0

그래, 내 코드 예제는 ... – skeggse

답변

1

편집. 확인 http://jsfiddle.net/z9VDw/3/. 이러한 조작을하기 전에 연결이 끊어진 DOM 노드를 추가해야합니다.

+0

지금 제대로 – skeggse

+0

@CMC을 (편집 참조) 실패 결함이 된 것 같다 : 확인 내 지금 대답하십시오. –

0

이제 내가하려는 것을보고 작동하지 않습니다. 파편으로 Dom 조작은 jQuery에서 작동하지 않습니다. (속성/CSS 설정 이외) replaceWith은 다음 요소 앞에 값을 삽입합니다. 이 경우 <span>third</span>을 입력 한 다음 다시 을 반환합니다. replaceWith을 호출하기 전에 this이 무엇이 었는지 다시 나타냅니다. 나를 위해 <span>second</span>

+0

좋아, 그럼 어떻게해야합니까? – skeggse