2014-11-19 6 views
0

어떻게이 CSS 블록을 jquery로 변환하겠습니까?jquery로 의사 요소 선택

.nav li a:first-child:nth-last-child(2):before { 
    content:""; 
    position: absolute; 
    height:0; 
    width: 0; 
    border: 5px solid transparent; 
    top: 50% ; 
    right:5px; 
} 

몇 가지 방법을 시도했지만 제대로 작동하지 않았습니다. 이 CSS는 jquery가 전체 앵커를 선택하기 전에 만 선택합니다.

$(".nav li a:first-child:nth-last-child(2)").before().css(...); // did not work 

$(".nav li a:first-child:nth-last-child(2)").before(function(){ 
    $(this).css(...); 
}); // did not work 

나는 다른 것들도 많이 시도했다. 내가 너희들 생각하는대로 고맙다. 고마워!

HTML은 :

이는 CSS와 같은 모습입니다
<ul class="nav"> 
    <li><a href="index.php">Home</a></li> 
    <li><a href="index.php">Class Assignments</a> 
     <ul> 
      <li><a href="#">Java</a> 
       <ul> 
        <li><a href="java1.php">Java 1</a></li> 
        <li><a href="java2.php">Java 2</a></li> 
        <li><a href="java3.php">Java 3</a></li> 
        <li><a href="java4.php">Java 4</a></li> 
       </ul> 
      </li> 
      <li><a href="#">JavaScript</a> 
       <ul> 
        <li><a href="javaScript1.php">JavaScript 1</a></li> 
        <li><a href="javaScript2.php">JavaScript 2</a></li> 
        <li><a href="javaScript3.php">JavaScript 3</a></li> 
        <li><a href="javaScript4.php">JavaScript 4</a></li> 
       </ul> 
      </li> 
      <li><a href="#">PHP</a></li> 
      <li><a href="#">C#</a></li> 
     </ul> 
    </li> 
    <li><a href="index.php">Projects</a> 
     <ul> 
      <li><a href="project.php">Project</a></li> 
      <li><a href="project.php">Project</a></li> 
      <li><a href="project.php">Project</a></li> 
      <li><a href="project.php">Project</a></li> 
     </ul> 
    </li> 
    <li><a href="index.php">Contact</a></li> 
</ul> 

...

enter image description here

+0

당신이 우리에게 탐색의 HTML 코드를 보여줄 수 : 여기

$(".nav li a:first-child:nth-last-child(2)").prepend('<span class="before-hack" />'); $('.before-hack').css(...); 

는 바이올린입니까? – Niffler

+0

당신은'.nav li a : first-child : nth-last-child (2) : before'를 사용 하시겠습니까? 나는 피들을 만들었고 CSS는 코드의 어떤 부분에도 영향을 미치지 않는 것 같습니다 ... http://jsfiddle.net/Niffler/287y3s4s/ – Niffler

+1

@Niffler 그것은 중요하지 않습니다; 당신은 JS로부터 의사 요소를 조작 할 수 없다. – Mathletics

답변

2

:before과 똑같이 작동하는지 잘 모르겠지만 jQuery를 사용하여 <span> 태그를 삽입 한 다음 <span>의 CSS를 조정하면 어떻게됩니까? 나는. http://jsfiddle.net/Niffler/287y3s4s/9/

+0

그게 효과가 있었고, 나는 CSS와 똑같은 방식으로 목표를 세우려하지 않았고, 나는 단지 같은 목표를 달성하기를 원했습니다. 나는 그걸 구체적으로 만들지는 않았지만 그래.대단히 감사합니다 :) – Foemilod

+0

@Foemilod 기꺼이 도와 드릴 수 있습니다! – Niffler

1

자바 스크립트는 수정할 수 없습니다 : 이전 : pseudoselectors 후.

문제의 해결책은 CSS 규칙을 CSS 파일에 직접 추가하는 것입니다. https://developer.mozilla.org/en-US/docs/Web/API/document.styleSheets

+0

JQuery조차도? – Foemilod

+1

@Foemilod LOL jQuery __is__ 자바 스크립트. – Mathletics

+0

알아요,하지만 Javascript가 더 많은 기능을 제공하기를 바랬습니다. JQuery가 추가 한 기능이 있습니다. – Foemilod

0

먼저 가게 객체에 CSS :

 var css = 
      { 
      "content":"", 
      "position":"absolute", 
      "height":"0", 
      "width":"0", 
      "border":"5px solid transparent", 
      "top":"50%", 
      "right":"5px" 
      }; 

그런 다음 다른 기능을하기 전에 CSS 함수를 호출 :

 $(".nav li a:first-child:nth-last-child(2)").css(css).before(function(){ 


     }); 

을 난 당신이 전에 CSS 함수를 호출해야합니다 생각 다른 기능들.