Javascript 如何删除特定页面上的CSS类?

Javascript 如何删除特定页面上的CSS类?,javascript,jquery,css,Javascript,Jquery,Css,如何从URL(例如)中包含/event/的所有页面以及以下页面中删除CSS类.tm导航栏:before: /agb /wiederrufsbelehrung /impressum 解决方案应该只删除.tm导航栏:before而不是.tm导航栏您可以使用JS来执行此操作,例如: if(window.location.pathname.indexof('/event/') > -1) { $('.tm-navbar').addClass('dontUseCss'); } 然后在c

如何从URL(例如)中包含
/event/
的所有页面以及以下页面中删除CSS类
.tm导航栏:before

  • /agb
  • /wiederrufsbelehrung
  • /impressum

解决方案应该只删除
.tm导航栏:before
而不是
.tm导航栏

您可以使用JS来执行此操作,例如:

if(window.location.pathname.indexof('/event/') > -1) {
    $('.tm-navbar').addClass('dontUseCss');
}
然后在css中,您可以执行以下操作:

.tm-navbar:not(.dontUseCss):before { ... }

解决方案是在评论中陈述的一系列问题。 我将此作为我的方法的模板:

并改变了添加CSS的方式。现在它将CSS添加到网站的
HTML
标签中,这样我就可以完成我在下面发布的CSS

 switch(window.location.pathname){
          case "/impressum":  $("html").addClass("no-gradient"); break;
          case "/agb":  $("html").addClass("no-gradient"); break;
          case "/datenschutz":  $("html").addClass("no-gradient"); break;
          case "/event/more0":  $("html").addClass("no-gradient"); break;
          case "/event/more1":  $("html").addClass("no-gradient"); break;
          case "/event/more2":  $("html").addClass("no-gradient"); break;
          case "/event/more3":  $("html").addClass("no-gradient"); break;
          case "/event/more4":  $("html").addClass("no-gradient"); break;
          case "/event/more5":  $("html").addClass("no-gradient"); break;
          case "/event/more6":  $("html").addClass("no-gradient"); break;
       }
CSS:

它删除了添加到导航栏的渐变,以提高可读性,但由于
JS
中定义的页面没有透明的hero标题,因此不需要它们。这就是为什么我需要修复它


感谢@MikeMcCaughan、@devius和@jdmdevdotnet的创意和帮助,解决了我的问题:)

你需要的不仅仅是普通的CSS。如果我是你,我会编写一些JS逻辑,为那些特定URL的元素添加一个类,然后用CSS隐藏它。如果你只处理静态html文件,最好在服务器端或客户端用javascript处理。那么,是哪一个呢?@devius我们正在处理动态页面,CSS应用于所有相同的页面。无法将CSS添加到特定页面。因此,应该使用Javascript或JQuery。此解决方案肯定需要一些Javascript。页面是否将类或id附加到每种类型页面的
body
元素,以使其成为目标。类似于
body > html.no-gradient > div.tm-navbar::before {
background: transparent !important;
display: none !important;
}


.no-gradient .tm-navbar:before {
background: transparent !important;
display: none !important;
}