2012-05-31 3 views
0

많은 html 콘텐츠가있는 입력이 있습니다. 원치 않는 요소 (요소 만 포함하지만 내용은 유지해야 함)를 효율적으로 제거하기 위해 jquery 함수를 찾고, 유지할 요소는 지정된 것입니다. 또한 원하는 기능을 쉽게 추가하거나 제거 할 수 있도록 기능을 구성하고 싶습니다. 예 : var tagsToRetain = "p, i, u, br";JQuery를 사용하여 내용을 유지하여 원하지 않는 html 요소를 제거하십시오.

나는 아래에서 시도했다. 그러나 그렇게하고 싶지 않은 요소를 지정해야한다. 그렇게하는 것이 지루할 것이다. 내가 제대로 이해하면

$("span,h1,h2").each(function(){ 
$(this).replaceWith($(this).html()); 
});​ 

답변

0

, 당신은 요소 하지이 당신의 .each() 루프에서 처리해야하는 지정합니다. 그렇다면, :not() selector 또는 .not() method를 사용

$("body *:not(p,i,u,br)").each(function(){ 
    $(this).replaceWith($(this).html()); 
});​ 

// OR: 
$("body *").not("p,i,u,br").each(function(){ 
    $(this).replaceWith($(this).html()); 
});​ 

// OR, encapsulated in a function with a clunky name: 

function stripElementsNotSpecified(tagsToRetain) { 
    $("body *").not(tagsToRetain).each(function(){ 
     $(this).replaceWith($(this).html()); 
    }); 
} 

stripElementsNotSpecified("p,i,u,br");​ 

참고 선택기의 "body *" 부분없이 :not(p,i,u.br) 부분은 HTML, 머리, 스크립트 등 문서의 요소를 선택할 것이다. "body *"을 사용하면 몸체의 하위 항목 만 선택합니다.

관련 문제