Javascript 应用css时排除上层父级

Javascript 应用css时排除上层父级,javascript,jquery,css,Javascript,Jquery,Css,我的问题是,除了元素中的链接外,我必须将一些CSS样式应用于父级是链接的每个图像。这是我的密码: $("img").parent("a").css({"padding": "0", "border": "0 none", "background-color": "transparent"}) 它可以很好地处理主页中发布的图像,但它也会破坏我的顶部菜单,因为它在链接中有一个图像(用于语言选择) 除了父元素是元素的链接图像,是否有方法将样式应用于每个链接图像?谢谢 …对每个图像应用一些CSS样式

我的问题是,除了
  • 元素中的链接外,我必须将一些CSS样式应用于父级是链接的每个图像。这是我的密码:

    $("img").parent("a").css({"padding": "0", "border": "0 none", "background-color": "transparent"})
    
    它可以很好地处理主页中发布的图像,但它也会破坏我的顶部菜单,因为它在链接中有一个图像(用于语言选择)

    除了父元素是
  • 元素的链接图像,是否有方法将样式应用于每个链接图像?谢谢

    …对每个图像应用一些CSS样式

    您可以针对任何对象,但不能针对
  • ,然后是锚定,然后是图像

    $('*:not(li) > a img').css()
    
    或过滤器

    $('a img').filter(function() {
        return $(this).closest('li').length === 0;
    }).css();
    
    看起来你真的是在将这些样式应用到锚点,而不是图像

    $('a:has(img)').filter(function() {
        return $(this).closest('li').length === 0;
    }).css();
    

    由于$(this.nestest('li')。length为0返回false,因此您可能不需要$(this.nestest('li')。length==0@DinoMyte-不太可能,可以做
    返回$(this.nexist('li')。长度也是一样,但我喜欢
    ==0
    ,它更清楚地表明了它的意图是什么也找不到,即没有li父项的DOM不会
    $('*:not(li)a img')
    匹配“body li a img”?我认为一个
    可能会有帮助…@dandavis-这就是为什么我添加了过滤方法,使用星号通常不会以你认为的方式结束,它是一个蹩脚的选择器,正如你所说,它可能会匹配
    一个img
    ,但在其他方面,比如
    body a img
    ,如果
    a
    也在
    li
    中,那么使用直接子选择器可能会更好,我会补充一点,但是现在还不清楚锚点是否是
    li
    的直接子对象,在这种情况下,这也不起作用。