虽然这可以通过纯CSS轻松实现,但我正在使用的论坛软件将内联样式写入HTML,我需要覆盖,或者在这种情况下,使用jQuery动态更改.
我有一个列表菜单,我希望li.active元素中的锚具有黑色背景.这就是我的用武之地.
if ( $('#community_app_menu li a').parent().hasClass('active')) {
$('#community_app_menu li a').css({
'background-image': 'none',
'background': 'rgba(0,0,0,1)'
});
}
Run Code Online (Sandbox Code Playgroud)
显然,这针对所有"#community_app_menu li a"元素,但我不能在IF中使用$(this).
我甚至想做什么?任何帮助将不胜感激.
谢谢,安迪
Fel*_*ing 11
jQuery-ish的方法就是过滤掉你不想要定位的元素(换句话说,只选择你想要操作的元素).这将是通用的方法:
$('#community_app_menu li a').filter(
return $(this).parent().hasClass('active');
}).css({
'background-image': 'none',
'background': 'rgba(0,0,0,1)'
});
Run Code Online (Sandbox Code Playgroud)
但我们可以做得更好:
如果li元素实际上是元素的父a元素,则将类添加到选择器:
$('#community_app_menu li.active > a').css({
'background-image': 'none',
'background': 'rgba(0,0,0,1)'
});
Run Code Online (Sandbox Code Playgroud)
即使li元素不是父元素,也可以使用单个选择器而不是.filter:
$('#community_app_menu li .active > a').css({
'background-image': 'none',
'background': 'rgba(0,0,0,1)'
});
Run Code Online (Sandbox Code Playgroud)