2010-03-16 2 views
1

나는 특정 요소의 HTML 내용이 블록 레벨 요소를 포함 여부를 결정 할 수 있도록하려면 ...html에 jQuery를 사용하여 블록 수준 요소가 포함되어 있는지 확인하는 방법은 무엇입니까?

내가 가 잘 작동했다를하지 않는 것을 나타냅니다 $(el.html()).length == 0을 사용했다

,하지만 난 곧 html에 "성공한"CSS 선택기가 포함되어 있으면 모든 것이 배 모양이된다는 것을 알게되었습니다.

아이디어가 있으십니까?

편집

좋아

, 그래서 나는 매우 분명하지 않다. "블럭 레벨 요소"는 암시 적 또는 명시 적이든 display : block 요소를 의미합니다.

내가 이렇게 할 이유는 조금 복잡하지만, 이런 식입니다 :

A. 내가 어떤 HTML 또는 텍스트를 포함 할 수 있습니다 "콘텐츠 편집 가능한 지역"함께 일하고 있어요. B. div의 다양한 클래스와 메타 정보를 사용하여 "편집"모드에서 래퍼를 만드는 서버 측 모듈이 있습니다. 내가 다음에 jQuery를 사용하고 C. :

  1. 을 절대적으로 (그렇지 않으면 래퍼 페이지의 디자인을 파괴 할 수있다 ... 그래서 인라인 요소는 인라인으로 표시) 그것의 외부 래퍼의 내용을 이동 내용 뒤에 "래퍼"(더 이상 래퍼가 아닌)를 배치하고 내용을 강조 표시하고 마우스 오른쪽 버튼으로 컨텍스트 메뉴를 표시 할 수 있도록 트리거로 사용하십시오.

효과적으로하려면 폭과 높이를 수정해야합니다. 내용은 쉽게 인라인되지만 내용이 인라인 인 경우에는 실패합니다. 그것에 대해 생각하면 콘텐츠가 고정 너비 요소도 포함되어 있으면 실패합니다. ...

내 질문에 대해 다시 생각해 보겠습니다. HTML에서 콘텐츠의 임의 섹션의 너비를 어떻게 결정할 수 있을지 궁금합니다. .... 어렵 겠어?

+2

"블록 레벨 요소"로 : – sjobe

+2

왜 이것을 달성하려고하는지에 대한 자세한 정보는 답을 찾는데 도움이 될 수 있습니다. HTML을 지정하고 "ABC 할 때 X, Y 및 Z를 발생시키고 싶습니다"라고 말하는 구체적인 예와 같이. – jessegavin

답변

0

결국 래퍼를 div 대신 span으로 만들어 다른 방법으로 문제를 해결했습니다. 그렇게하면 내용을 외부로 옮길 필요가 없지만 래퍼 내부에 남겨 둘 수 있습니다. 래퍼는 새로운 선을 강제로 적용하지 않습니다. 선의 내용은 너비와 높이에 따라 달라집니다.

span 안에 블록 요소를 배치하는 것이 기술적으로 올바르지 않지만, 달성하고 싶은 것의 트릭 크로스 브라우저를 수행하는 것 같습니다. 당신은 화면의 모든 요소를 ​​의미합니까,

$("div.anyclass").children().filter(function() { 
return $(this).css("display") === "block"; 
})' 
+0

내가 수행해야하는 것은 래퍼가 표시되도록 설정되어 있습니다 : 인라인 블록. –

1

는 이런 식으로 뭔가를 시도 .anyclass의 클래스와 모든 블록 요소 어떤 부모의 자녀를 얻으려면 블록; 암시 적으로 또는 명시 적으로?
관련 문제