2009-09-29 3 views
3

이 HTML 코드가 있습니다.태그를 "언랩"하는 방법은 무엇입니까?

<center><table><tr><td>table</td></tr></table></center> 

<center>

에서 테이블을 풀 수있는 방법은 무엇입니까?

많은 감사

+0

질문이 무엇인지 모르겠습니다. –

+0

"unwrap"이란 무엇을 의미합니까? 텍스트를 추출 하시겠습니까? – NawaMan

+0

어린이 콘텐츠는 그대로두고 '

' 태그를 제거 하시겠습니까? –

답변

3

이 기능은 작업을; 나는 $ (이)

을에 핸들을 얻기 위해 annonymous 기능 .each 전화

$("center").each(function(){ 
     $(this).replaceWith($(this).html()); 
    }); 

:

jQuery.fn.unwrap = function (el) { 
    return this.each(function(){ 
     $(this.childNodes).appendTo(this.parentNode); 
    }); 
}; 
5

차라리 완전히 센터 태그 제거하기 또는 일부 사업부로 대체합니다. 가운데 태그는 아무 것도 싸여 있지 않습니다. 어떤 아이디어?

아무 것도 포장되지 않았습니까? 물론 그걸 무언가에 감싸세요!

var $center = $('center'); 
var $newReplacement = $("<div></div>"); 

$center.wrap($newReplacement); 
$newReplacement.html($center.html()); 
또는

:

var $center = $("center"); 
$("<div></div>") 
    .insertBefore($center) 
    .html($center.html()) 
; 
$center.remove(); 

그리고 다시,하지만 이벤트 잃지 않고이 시간 : 잘

var $contents = $("center > *") 
    .clone(true) // not sure if this is needed 
    .appendTo(
     $("<div></div>").insertBefore("center") 
    ) 
; 
$("center").remove(); 
+0

나는 두 번째 것을 더 좋아하지만, 새로운 DIV를 변수에 할당 할 필요는 없다. – tvanfosson

+1

html()을 사용하면 이벤트 등이 느슨해집니다. – svinto

3
var $table = $("center table"); 
var $center = $table.parent(); 
$table.insertBefore($center); 
$center.remove(); 
+0

이 솔루션은 nickf와 같은 HTML 또는 복제 항목을 변경하는 것보다 빠릅니다 – jantimon

1

새로운 변수 나 함수, 내가 일반적으로 다음과 같이 "풀다"것을 방지하려면

페이지에 센터 태그가 두 개 이상있는 경우 id 속성을 사용하여 제거하려는 태그를 표시하고 다음과 같이 선택하십시오.

관련 문제