hmtl:
<div id="1"><span>景点介绍</span><span>景点介绍</span><span>景点旅游攻略</span></div>
jquery:
$("#3 span").eq(0).live('click',function(){alert('s');});//不能实现
$("#3 span:eq(0)").live('click',function(){alert('s');});//能实现难道是live的原因,因为换成bind,上述两者都能实现
<div id="1"><span>景点介绍</span><span>景点介绍</span><span>景点旅游攻略</span></div>
jquery:
$("#3 span").eq(0).live('click',function(){alert('s');});//不能实现
$("#3 span:eq(0)").live('click',function(){alert('s');});//能实现难道是live的原因,因为换成bind,上述两者都能实现
$("#3").children().eq(0) id3下面的第一个子元素
不信你用firebug试下
console.log($("#1 span").eq(0));
console.log($("#1 span:eq(0)"));
$("#3 span").eq(0).click(function(){
alert('s');
alert("first div");
});
为什么用live,第一个就不行呢?
.eq()无所谓 负值就是倒着数, -1就是最后一个。.live是绑定到selector上的 所以
$("#3 span:eq(0)") 这个是selector可以
$("#3 span").eq(0) 这个是jquery object,不可以。最后说下不相关的,其实.live和<span onclick="" 是不一样的。
我最后的意思是给span加.live('click', function());
和span自带click功能<span onclick="" />还是有一定区别的。 但大部分情况下可以忽略。
说等效是错误的 需要selector的时候 $("#div[id='dv']").eq(0) 是不会工作的