在我使用CSS的下面的函数代码中,它工作正常。当我将这个CSS添加到一个类时,它无法正常工作
function setTab(selection) {
$("#"+selection).css('background', '#CC0000');
$("#"+selection).css('color', '#ffffff');
// Both the Above statements works fine
$("#"+selection).addClass("selectedclass");//doesnot work
}
.selectedclass li{
background: #CC0000;
color: #ffffff;
}
答案 0 :(得分:1)
我打赌发生的事情是,这个班级被另一种风格所推翻。在这种情况下哪个是最明显的。前两行代码工作的原因是他们直接编辑样式,添加一个类,级联规则仍然适用
试试这些:
<style type="text/css">
/* I'm guess at what I think you need, since I don't know your HTML structure. */
body .selectedclass li,
body ul .selectedclass li ,
body ol .selectedclass li {
background: #CC0000;
color: #ffffff;
}
</style>
您的代码很简单,所以它可能是正确的。但你可以这样清理它:
function setTab(selection)
{
if ( typeof(selection) == "string" )
{
$( '#' + selection ).addClass( "selectedclass" );
}
}
答案 1 :(得分:0)
是否有可能比应用的类选择器更具体的选择器?您是否查看过Firebug中的元素以查看元素获取其属性的位置?使用前两个语句,您将直接在元素上设置样式,这将优先考虑。使用第二个,它将取决于您定义的各种样式,它们的顺序和特异性。也可能是您的类应用于错误的元素,即直接应用于li
而不是父ul
(ol
)。在这种情况下,您需要将规则更改为li.selectedClass
。
另外,您是否知道可以将jQuery函数链接在一起? css
有一个带有键/值对映射的重载。
function setTab(selection) {
$("#"+selection).css({'background-color': '#CC0000', 'color' : '#ffffff'});
}