2012-05-06 3 views
7

를 사용하여 요소를 배치 전환가장 좋은 방법은 내가 HTML에서이 코드가 jQuery를

<span id="s">Attachments</span> 

은 "첨부 파일"텍스트 래핑이되도록 다음 표 코드 블록과 외부 SPAN 요소를 전환 할 jQuery를 사용하는 방법 테이블 요소로

<table id="t"> 
    <tr> 
    <td>Attachments</td> 
    </tr> 
</table> 
당신은 범위를하는 TR과 TD있는 테이블을 만드는 것이 새로운 TD 요소로 범위에서 HTML 내용을 삽입, 스팬 직후 표를 삽입 한 다음 마지막으로 제거 할 수
+0

여기에 해결책을 찾았 http://stackoverflow.com/questions/17872320/jquery-changing-wrapping-tag –

답변

2

.

$("<table id='t'><tr><td>" + $("#s").html() + 
    "</td></tr></table").insertAfter("#s"); 

$("#s").remove(); 

"스 와이프"로 "스왑"을 사용하고 있습니까? 그래서 제가 원래의 범위를 제거했습니다. 그렇지 않은 경우 remove 전화를 건드리지 마십시오.

+0

감사합니다! 이게 왜 효과가 없는지 아시겠습니까? http://jsfiddle.net/5VG6F/ –

+1

대신 사용해보십시오. http://jsfiddle.net/Fh24j/. jsFiddle이 onLoad를 사용하지 않도록 변경해야만 했으므로 기능을 정의 할 수 없었습니다. 필자는 코드를 단순화하고 insertAfter를 테이블을 생성하는 동일한 명령에 넣었다. – jmort253

+0

내 이전 댓글 삭제. –

2

감싸고 #s 요소, 다음 자신의 내용으로 대체합니다

$("#s") 
    .wrap("<table id='t'><tr><td></td></tr></table>") 
    .replaceWith(function(){ 
     return this.innerHTML; 
    }); 

데모 : http://jsbin.com/elotan/edit#source

을 아래 코멘트에 대한 자세한 설명에 따라, OP는을 만들 수 있기를 원 나타납니다 ad-hoc 테이블에 넣고 #std에 삽입하십시오. 다음은 더 좋을 수 있습니다

$("<table>", { 
    id:'t', html:'<tr><td>Foo</td><td>' + $("#s").html() + '</td></tr>' 
}).replaceAll("#s"); 
+0

대단하군요! 텍스트를 삽입하는 위치를 어떻게 알 수 있습니까? 예를 들면 다음과 같습니다. http : //jsbin.com/asinop Cell-1에는 "Attachement"를 삽입하지만 Cell-2에는 삽입하지 않는 것이 얼마나됩니까? –

+1

@RegisteredUser 첫 번째 셀이 가장 안쪽에있는 첫 번째 컨테이너로 간주됩니다. 따라서 최종 위치가 사용됩니다. 나는 래퍼 문자열로 너무 복잡 해지는 것을 피할 것이다. – Sampson

+0

OK. 다만 질문입니다. 위치를 컨테이너의 두 번째 TR/TD로 지정하려면 어떻게해야합니까? 어떤 수정을해야합니까? –

관련 문제