0

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

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

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

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

有人可以帮忙吗?

非常感谢

彼得

4

2 回答 2

1

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

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

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

$(this).parent().animate({backgroundColor: '#FFB95E'}, 1000).animate({borderColor: '#C97200'}, 1000);
于 2012-10-11T11:17:25.127 回答
0

为什么不简单

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

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

于 2012-10-11T10:55:07.623 回答