如何使用jquery更改css属性

时间:2013-10-02 13:54:20

标签: javascript jquery html css

我只是在div上显示三角形,如下例所示:http://jsfiddle.net/yuvaraj_b/wPWDm/19/

我希望MENU FOUR的三角形显示在右侧而不是左侧。

这不起作用:

$(this).find(".dropdown ul li:first-child > a:after").css( "left", "300px" );

如何解决此问题,以便检测此类并更改left的位置。

2 个答案:

答案 0 :(得分:5)

:after等Psuedo元素在DOM中不存在,因此不能被jQuery选择器字符串作为目标。

通常你可以通过使用CSS类和addClassremoveClass(或toggleClass来完成同样的事情,如果你打算稍后在代码执行中将其切换回来)jQuery方法 - 这将允许您动态更改创建psuedo-element的CSS。因此,不是通过jQuery直接操作psuedo元素的CSS,而是为a元素编写一个CSS类,该元素具有a:after psuedo元素的更新CSS,并在三角形需要时切换该类被移动。

答案 1 :(得分:2)

添加父元素的类,并根据该新类分配静态CSS样式。 JavaScript无法直接定位:after

$(this).find(".dropdown ul li:first-child > a").addClass('moved');

CSS:

.dropdown ul li a.moved:after {
    left: 300px;
}