JQuery - animate()颜色属性仅适用于第一个标签?

时间:2014-10-22 08:34:21

标签: jquery

为什么以下JQuery“颜色”效果仅应用于第一个p标签?不透明效果适用于所有p标签。如果我使用$("p#jp_test"),则适用于所有p代码。我很困惑。

$(document).ready(function(){
    $("#jq_test").animate({
        left: '50px',
        opacity:'0.5',
        color: '#FF0000'}, 2000);
});

1 个答案:

答案 0 :(得分:3)

问题是您在多个元素上使用相同的id,这是无效的。改为使用一个类。

$("#jq_test")只执行第一个$("p#jq_test")执行所有操作的原因是,当jQuery看到一个纯粹是id选择器的选择器时,它使用{{1 },非常快,并返回单个元素。但是如果它看到一个更复杂的选择器,它会使用document.getElementById(或者它自己在Sizzle中对真正旧的浏览器的处理),它会找到所有这些。但那个未指明的行为;在多个元素上使用相同的querySelectorAll同样无效,如果需要,浏览器也可以选择不通过id找到这些元素。