使用jQuery更改父元素样式

时间:2015-12-25 13:23:54

标签: javascript jquery html css

我有下一个html设置:

<div class="one">
    <div class="two">
        <a href="#" class="three">Click</a>
    </div>
</div>

当我点击元素 .three .one >使用jQuery。

这是我试图使用的:

$(function(){
    $('.three')(function(){
        $(this).parent().parent().css('backgroundColor', 'red');
    })
});

这是一个小提琴示例:https://jsfiddle.net/Munja/a7unbs2p/

我在SO上搜索解决方案但是找不到足够快的速度(可能我看起来不够好:/)。

谢谢。

5 个答案:

答案 0 :(得分:4)

您需要使用.click().on('click') ..您也可以使用.closest(),而不是使用parent()两次

$(function(){
    $('.three').on('click',function(){
        $(this).closest('.one').css('backgroundColor', 'red');
    })
});

答案 1 :(得分:2)

只需在代码中添加Click事件即可。首先添加jquery.min.js然后添加脚本。你可以这样做 -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
     $(".three").click(function(){
         $(this).parent().parent().css("background","red");
     });
</script>

答案 2 :(得分:1)

由于它是元素的暗示,你可以使用.parents()向上移动直到找到选择器。

此外,您可以在CSS方法中使用CSS语法(background-color而不是backgroundColor)。

$('.three').on('click', function(){
    $(this).parents('.one').css('background-color', 'red');
})

答案 3 :(得分:0)

我无法发表评论,所以,只有更高的回答:

$(function(){
    $('.three').on('click',function(){
        $(this).closest('.one').css('background-color', 'red');
    })
});

Css没有名称为backgroundColor的属性

答案 4 :(得分:0)

你可以使用这样的东西。

$('.three').on('click',function(){
    $(this).closest('.one').css('backgroundColor', 'red');
})