jquery addclass样式不起作用,错误的选择器?

时间:2009-09-18 10:17:33

标签: jquery css selector styling addclass

<li id="leistungen"><a href="#Leistungen" onclick="sitemapChangeSubMenu('leistungen','leistungencontent','leistungen'); return false;">LEISTUNGEN</a> </li>

这是我想要样式的列表项:

$("#leistungen a").addClass("brown");

这不适用于:

$("#leistungen").addClass("brown");

我的css代码只是

.brown {
   color:brown;
}

我不知道出了什么问题,希望你能帮助我:)。

非常感谢!

5 个答案:

答案 0 :(得分:6)

$("#leistungen").addClass("brown");

将对#leistungen中的所有文本起作用,但不对锚标记起作用。锚具有必须覆盖的默认样式。你的写作是正确的

$("#leistungen a").addClass("brown");

通过将其更改为

来进行测试以确保您的Javascript正在执行
$("#leistungen a").hide();

如果它消失了,那么你知道你的Javascript正在处理正确的元素。接下来,尝试使用您的选择器更具体(可能还有其他东西覆盖您的更改)。

$("li#leistungen a").addClass("brown");

如果这不起作用,请确保javascript已执行,然后检查该元素。它有新课吗?如果是这样,那么问题在于CSS而不是Javascript。检查围绕“.brown”样式的CSS文件以查找语法错误。从以前的样式中删除}就可以了。

尝试使用“#4C3F12”代替单词“brown”作为颜色。

.brown {
  color: #4C3F12;
}

如果有任何帮助,请告诉我们!

答案 1 :(得分:3)

区分大小写 - 您使用大写L命名锚点。

$("#Leistungen").addClass("brown");

在第一种情况下,您还需要使用类选择器,而不是id选择器

$(".leistungen a").addClass("brown");

注意 - 我会避免匹配的类和ID(有或没有区分大小写)。

HTML ID Attribute docs(强调我的):

  

ID属性唯一标识   文档中的元素。没有两个   元素可以具有相同的ID值   单个文件。属性的   值必须以字母开头   可以遵循范围A-Z或a-z   用字母(A-Za-z),数字(0-9),   连字符(“ - ”),下划线(“_”),   冒号(“:”)和句号(“。”)。的的   值区分大小写。

答案 2 :(得分:0)

你安装了firebug吗?在firebug中,您需要检查是否正在添加课程。如果要添加,请刷新浏览器缓存,否则请检查您的javascript。

答案 3 :(得分:0)

此处您可能遇到CSS specificity问题。如果指定“a”标记的原始颜色非常具体,则新定义可能不起作用。例如:

body #leistungen a {
   color: red;
}

.brown {
   color: brown;
}

在这种情况下,红色优先于棕色,因为第一个定义比最后一个定义更具体。尝试更具体地定义brown类:

body #leistungen a.brown {
   color: brown;
}

答案 4 :(得分:0)

可能是某个地方有一个冲突的css定义。 如果您确定正在执行javascript,请检查:

  1. 由于它是ID,因此请确保该ID也未分配给其他标记。
  2. 你还有其他适用于标签的css声明吗?
  3. 尝试将声明更改为:

    a.brown{ color: brown;} 
    

    或者     .brown a {color:brown;}

    取决于您使用$("#leistungen a").addClass("brown");还是$("#leistungen").addClass("brown");