2011-09-29 4 views
0

WYSIWYG 편집기를 사용하여 새 웹 사이트 페이지를 만드는 클라이언트가 있습니다. 문제는 언젠가 WYSIWYG 편집기이 레이아웃에 혼란을 일으키는 것은 그래서이 문제는 지금이다이 빈 태그JQuery - 내 기능 향상

$('p') 
.filter(function() { 
    return $.trim($(this).text()) === '' 
}) 
.remove() 

을 제거하기 위해 약간의 기능을 썼다 빈 페이지 태그

<p>&nbsp;</p> 

에 넣어 것입니다 이미지가 wysiwyg 편집기에 삽입되면 ap 태그에 이미지가 포함되고 my 함수는 이미지를 화면에서 제거합니다.

이미지를 허용하도록 내 기능을 업데이트 할 수 있습니까? 아니면 빈 p 태그 만 검색하고 제거 할 수 있습니까 ??? 사전

제임스

답변

2

당신은 당신의 필터는 자식 요소가 없는지 확인 할 수있다 , 그렇지 않다면 백엔드가 아니라 프론트 엔드에서 수정하십시오.

0

에서

덕분에 당신은 같은 제거하려는 블록 주위에 div 태그를 사용하여 시도 할 수 있습니다. jQuery 문에서 모든 단락 대신 div ID를 기반으로 호출 할 수 있습니다.

2

는 당신은 아이가없는 요소 선택 :empty 의사 선택을 사용할 수 있습니다 : (당신은 공백 및 아무것도가 제거되지 않습니다와 p 요소가있는 경우, 그러나

$("p:empty").remove(); 

:empty을하기 때문에 텍스트 노드를 자식으로 취급). 따라서 위에서 실행하기 전에 p 요소에서 공백 (.trim 사용)을 제거 할 수 있습니다.

현재 방법의 문제는 filter 기능 만 img 요소를 포함하는 p 요소를 제거해야한다고 생각 있도록 img 같은 태그, 텍스트를 포함하지 않는 것입니다.

1

방법이

$('p').each(function(){ 
    if($(this).html() == "&nbsp;"){ 
     $(this).remove(); 
    } 
}); 

데모에 대한 :

1

그냥 WYSIWYG 수정 :

$('p').filter(function() { 
    var $this = $(this); 
    return !$this.children().length && $.trim($this.text()) === ''; 
}).remove() 
+0

이것은 실제로 실제로 가장 좋은 행동 강령입니다. 그것은 버그입니다. 주변에서 작업하는 대신 소스에서 제거하십시오. –