在IF语句中是否有(this)的等价物

and*_*amb 2 javascript jquery

虽然这可以通过纯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)