javascript中的include::before伪类

javascript中的include::before伪类,javascript,css,Javascript,Css,为什么这东西不起作用?如果我从javascript和css中删除::before,它就会工作。但由于设计需要,必须有一个::之前。如何指向类+::before $(function () { var sections = $("section"); var navigation_links = $("nav a"); sections.waypoint({ handler: function (event, direction) { var active_sec

为什么这东西不起作用?如果我从javascript和css中删除::before,它就会工作。但由于设计需要,必须有一个::之前。如何指向类+::before

$(function () {



var sections = $("section");
var navigation_links = $("nav a");

sections.waypoint({
    handler: function (event, direction) {

        var active_section;
        active_section = $(this);
        if (direction === "up") active_section = active_section.prev();

        var active_link = $('nav a[href="#' + active_section.attr("id") + '"]');
        navigation_links.removeClass("selected::before");
        active_link.addClass("selected::before");

    },
    offset: '25%'
})
})

css:


}

您不需要在JS中添加::before。只要.selected类出现在元素上,CSS就会完成其余的工作。addClassselected::before告诉浏览器添加名为selected::before的类,这不是您想要的。我甚至不确定是否允许在类名中包含::,但我怀疑不允许。

。selected::before是选择器,而不是类,因此不能将其用作removeClass的参数。已工作!非常感谢。我确实删除了额外的:from::而且它很有效。工作时间长,我主要是一名设计师,这是我第一次尝试编写自己的网站。所以,我感谢你的帮助,先生@m::是一个伪元素选择器,完全有效。但是,是的,用户只需要引用类,而不需要附加伪元素。和用户::和::与::before::相同:是正确的,但是:做同样的事情,因为一些浏览器最初支持这种方式。@niko在我的逻辑中,我真的认为:和::在出现类似.class:hover::的情况时使用,但是是的,它也可以与single:一起使用。@niko-I的意思是在类名中使用字符:或::,而不是作为伪元素。不过,我知道现在在类名中允许使用更多的字符。根据此链接,现在在类名中使用冒号显然是有效的:
.selected::before {
display: block;
content: "";
margin-top: 6px;
width: 8px;
height: 8px;
background: url(../img/sprite.png) -126px -196px;
background-size: 400px 480px;
float: left;
margin-left: 20px;
margin-right: 20px;