2011-10-11 7 views
3

가능한 중복 : 나는 '는`의사 요소 .css` 사용

p:before { 
    content: 'Intro!'; 
} 

:
Manipulating CSS :before and :after pseudo-elements using jQuery

내가 jQuery를 동등한이 CSS 코드를 싶습니다 순진하게 $('p:before').css('content', 'Intro!');을 시도했지만 작동하지 않습니다.

jQuery를 사용하여 가상 요소 CSS 수정을 수행하려면 어떻게해야합니까?

+0

그 게시물은 실제로 답변을 제공하지 않습니다 ... – Randomblue

+1

@Randomblue : "jQuery를 사용하여 의사 요소를 수정할 수 없습니다"라는 대답은 아닙니까? – BoltClock

+0

@Sotiris : CSS * 요소 *를 변경하는 것만으로 CSS * 요소를 조작하는 것에 관심이 없습니다. – Randomblue

답변

7

당신은 할 수 없습니다.

1) 선택기 p:before은 선택기가 아닙니다. psuedo 요소는 실제 선택에 영향을주지 않는 기능을 정의합니다. jQuery가 반환해야하는 대상은 모두 p 태그입니까? 그게 모두 $(...)입니다 - 선택자와 일치하는 요소 묶음을 반환합니다. jQuery (Sizzle/querySelectorAll)는 가져 오는 방법을 알지 못합니다. :before ...

2) Psuedo 요소/클래스 동작은 JS API를 통해서도 사용할 수 없습니다.

이런 식으로 뭔가를 할 수있는 유일한 방법, 동적 JS를 통해, 그래서처럼 <style> 요소를 생성하는 것입니다 : 당신이 처음에이 일을하려는 이유

$('<style>p:before{content:"intro";}</style>').appendTo('head'); 

내가 물어 봐도 될까요?

+0

의사 ** 요소 **! 두 사람이 섞이지 않도록하십시오. – BoltClock

+0

@BoltClock, thanks, edited :) – James

+0

내가 원하는 이유는 특정 요소에 오버레이가 있고 그 특정 요소가 시간이 지남에 따라 변하는 것입니다. [this] (http://stackoverflow.com/questions/7731523/doing-overlays-without-anempty-div) 질문을 참조하십시오. – Randomblue

2

이 작업을 수행 할 수 있습니다

$(document).append($("<style>p:before{ content: 'Intro!' } </style>")); 
+0

!! 인라인 스타일은 사용하지 마십시오. – Randomblue

+1

@Randomblue : 인라인 스타일 시트 =/= 인라인 스타일. – Blazemonger