为什么以下JQuery“颜色”效果仅应用于第一个p标签?不透明效果适用于所有p标签。如果我使用$("p#jp_test")
,则适用于所有p
代码。我很困惑。
$(document).ready(function(){
$("#jq_test").animate({
left: '50px',
opacity:'0.5',
color: '#FF0000'}, 2000);
});
答案 0 :(得分:3)
问题是您在多个元素上使用相同的id
,这是无效的。改为使用一个类。
$("#jq_test")
只执行第一个$("p#jq_test")
执行所有操作的原因是,当jQuery看到一个纯粹是id
选择器的选择器时,它使用{{1 },非常快,并返回单个元素。但是如果它看到一个更复杂的选择器,它会使用document.getElementById
(或者它自己在Sizzle中对真正旧的浏览器的处理),它会找到所有这些。但那个未指明的行为;在多个元素上使用相同的querySelectorAll
同样无效,如果需要,浏览器也可以选择不通过id
找到这些元素。