你如何将这块css转换成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:
<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>
这就是用css看起来的......
答案 0 :(得分:2)
不确定它与:before
的工作原理完全相同,但如果您使用jQuery插入<span>
- 标记,然后调整<span>
的CSS,该怎么办?即。
$(".nav li a:first-child:nth-last-child(2)").prepend('<span class="before-hack" />');
$('.before-hack').css(...);
答案 1 :(得分:1)
Javascript无法修改:之前,:在伪选择之后。
您的问题的解决方案是直接向css文件添加css规则。 https://developer.mozilla.org/en-US/docs/Web/API/document.styleSheets
答案 2 :(得分: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函数。