javascript - IF 语句中是否有相当于 (this) 的内容

标签 javascript jquery

虽然这可以通过纯 CSS 轻松实现,但我正在使用的论坛软件将内联样式写入我需要覆盖的 HTML 中,或者在本例中,使用 jQuery 动态更改。

我有一个列表菜单,我希望 li.active 元素中的 anchor 具有黑色背景。这就是我的处境。

if ( $('#community_app_menu li a').parent().hasClass('active')) {
    $('#community_app_menu li a').css({
        'background-image': 'none',
    'background': 'rgba(0,0,0,1)'
 });
 } 

显然,这针对所有“#community_app_menu li a”元素,但我不能在 IF 内部使用 $(this)。

我想做的事可能吗?任何帮助将不胜感激。

谢谢, 安迪

最佳答案

更类似 jQuery 的方式是 filter删除您不想定位的元素(换句话说,仅选择您想要操作的元素)。这将是通用方法:

$('#community_app_menu li a').filter(
    return $(this).parent().hasClass('active');
}).css({
    'background-image': 'none',
    'background': 'rgba(0,0,0,1)'
});

但我们可以做得更好:

如果 li 元素实际上是 a 元素的父元素,则将该类添加到选择器:

$('#community_app_menu li.active > a').css({
    'background-image': 'none',
    'background': 'rgba(0,0,0,1)'
});

即使 li 元素不是父元素,您也可以使用单个选择器来代替 .filter:

$('#community_app_menu li .active > a').css({
    'background-image': 'none',
    'background': 'rgba(0,0,0,1)'
});

关于javascript - IF 语句中是否有相当于 (this) 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151211/

相关文章:

javascript - 为什么我的异步函数在早先的 promise 被履行之前被执行?

javascript - 无法将值传递给 php

javascript - grunt-contrib-jasmine ReferenceError : Can't find variable: jQuery

javascript - 在 Javascript 循环中将数组中的值分配给三个不同的数组?

javascript - .each 和回调

jquery - 主干js : How to remove extra tag in view?

JQuery - 如何平滑地调整图像大小以创建脉动效果?

javascript - 如何大写第一个字母并小写字符串的其余部分

javascript - 使用复选框编码和更新位 - Succinctest 方法

javascript - 如何使用javascript文件解码编码?