2012-02-06 2 views
4

jQuery를 통해 페이지의 모든 DIV를 제거 할 수 있습니까? 콘텐츠를 그대로 유지하십시오.이 패턴이 적용됩니까? div의이 패턴을 따르는 것이jQuery - 클래스 이름을 기반으로 DIV 제거

<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">....</div> 

참고 :

  • 클래스 이름은 항상 ExternalClass로 시작하지만 같은 다른 값, 결코 다음됩니다,

  • 와 DIV가있다 다른 속성은 없지만 class입니다. (SharePoint에 있습니다)

감사합니다.

+0

DIV에이 ** 만 ** 클래스 속성을 가지고 있어야 있습니다 다른 속성은 없습니다.제공되는 솔루션은 모두 훌륭하지만 누군가이 문제에 대한 추가 기능을 제공 할 수 있습니까? – Alex

+1

이것이 내가 검색 한 첫 번째 결과라고 웃었습니다. 내 검색이나 OP에서 언급하지는 않았지만 SharePoint 때문에이 문제가 발생했을 가능성이 충분히 있습니다. +1 좋은 질문입니다. –

+1

편집 : 처음에는 'This is on SharePoint'라는 알림을 보지 못했습니다. –

답변

4

예, 당신이 사용할 수있는 attribute starts with selectorreplaceWith 방법 :

$('[class^="ExternalClass"]').filter(function() { 
    return this.attributes.length === 1; 
}). replaceWith(function() { 
    return $(this).html(); 
}); 
+0

추가'self' 변수를 사용할 필요가 없습니다. – dfsq

+0

@dfsq 좋은 점은, 이전의 화신에서 jQuery 객체를 다시 생성하는 것을 피하는 것이 좋았지 만,'replaceWith'가 모든 일치 된 요소에서 작동하기 때문에'each' 호출이 불필요하다는 것입니다. –

+0

이러한 모든 대답에 대한 한 가지 문제점 : 클래스 속성 만 있고 ** 다른 속성은없는 ** DIV를 제거해야합니다. – Alex

1

div에서 내부 html을 가져옵니다. div를 제거한 후로 또는 그 이후에 내용을 붙여 넣기 위해 부모 또는 이전 태그를 가져옵니다. Jquery에는 replace 함수가있을 수 있습니다. 확실하지는 않습니다. 더 쉬울 것입니다.

.remove()를 사용하여 div를 제거 할 수 있어야합니다.

$ ("[class $ = 'ExternalClass']"). remove();
id * = 나는 어느 것을 잊어 버릴 수 있습니다.

는 개정 : 당신은 HTML을 다시 작성해야 http://api.jquery.com/replaceWith/

+0

http://api.jquery.com/replaceWith/ –

+0

그들은 위의 기능을 가지고 있으며 발견 한 것만으로도 작동합니다. –

+0

클래스가 아닌 ID를 선택합니다. –

1

.

$("div [class^=ExternalClass]")은 요소를 선택합니다.

innerHTML을 잡고 요소 다음에 추가 한 다음 요소를 제거하십시오.

1

선택기 ^=으로 시작하는 속성을 사용하여 시도해 볼 수 있습니다.

$('div[class^="ExternalClass"]').each(function(){ 
    $(this).replaceWith($(this).html()); 
}); 
1
var $text = ""; 
$.each($("div"), function(){ 
    $text = $text + this.html(); 
}); 
document.write($text); 
2
$('[class^="ExternalClass"]').replaceWith(function() { 
    return $(this).html(); 
}); 
+0

감사합니다. dfsq. 질문에 대한 내 의견과 두 번째 요구 사항을 참조하십시오. DIV에는 class 속성 만 있고 다른 속성은 없어야합니다. 모든 대답은 지금까지 이것을 무시했습니다. 누구나 해결책이 있습니까? – Alex

1

샘플 HTML :

<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">foo</div> 
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02sdfsdsdfF039">bar</div> 

샘플 JQuery와 :

$('div[class^="ExternalClass"]').each(function() { 
    $(this).contents().unwrap(); 
}); 

출력 :

foo bar 

(wihtout 된 div)

을 heres 바이올린이 :

http://jsfiddle.net/6hbhL/

관련 문제