jQuery addClass不起作用,但是css可以

时间:2011-12-14 00:20:11

标签: jquery

不起作用

CSS

.active 
{
    display: block;
}

JS

$("#li_1 ul").addClass('active');

可行吗

JS

$("#li_1 ul").css('display', 'block');

这引出了我的问题,为什么css功能起作用而不是addClass?选择器之间没有区别。

其他信息 -

  • 使用jQuery版本1.6.4
  • 这里讨论的JS驻留在一个.js文件中 ASP.NET母版页
  • masterpage包含指向包含相关CSS的样式表的链接 这里(即 - '主动'样式可用于母版页)

2 个答案:

答案 0 :(得分:4)

使用此声明怎么样:

.active {
  display:block !important;
}

我认为有些内容会覆盖CSS样式表中的.active规则。

有关CSS优先级的更多信息right here

答案 1 :(得分:0)

如果没有看到您的HTML,很难确定为什么它不起作用。我可以说你发布的JS应该可以正常工作。我在这里有一个有效的例子:

http://jsfiddle.net/hsyEw/1/

跳出来的一件事是这个选择器$("#li_1 ul")看起来有点奇怪。你真的有一个ul元素是一个元素的子元素,其id值暗示它是li吗?

你的第二个JS示例是直接将样式应用于将覆盖正在应用的任何CSS类样式的元素,因此如果你有一些影响该元素的其他CSS,这可以解释你所看到的行为。