如何使用jQuery更改父元素的背景颜色?

时间:2012-10-11 10:52:40

标签: javascript jquery click parent parent-child

我想要做的是在点击提交按钮时更改父元素的背景颜色。

因为我已经尝试过这段代码:

            $("input.submit").click(function(){
                var className = $(this).parent().attr("class");
                $(className).animate({backgroundColor: '#FFB95E'}, 1000);
                $(className).animate({borderColor: '#C97200'}, 1000);
            });

但我永远无法获得父元素的类名。有一些提交按钮都有不同的父元素,这就是我需要这样做的原因。

有人可以帮忙吗?

非常感谢

彼得

2 个答案:

答案 0 :(得分:1)

您的标记示例有助于解决此问题,但您似乎正在使用正确的代码来获取父元素。

我建议您使用像firebug这样的调试器来查看$(this).parent()[0]是什么,或者alert($(this).parent()[0]);如果它没有返回"object"你知道你没有父元素你有一个父元素使用alert($(this).parent()[0].outerHTML);来看看你是否拥有正确的元素。

最后$(className)是多余的,没有任何意义只是将elemnt命令与下面的getter链接起来或直接使用变量它已经是一个jQuery对象。

$(this).parent().animate({backgroundColor: '#FFB95E'}, 1000).animate({borderColor: '#C97200'}, 1000);

答案 1 :(得分:0)

为什么不简单

$(this).parent()
       .animate({backgroundColor: '#FFB95E',
                 borderColor: '#C97200'}, 1000);

您无需获取父级的类来设置背景颜色。但是,如果我没有错误的颜色动画默认情况下不起作用,你需要一些插件来处理过渡