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,上述两者都能实现

解决方案 »

  1.   

    $("#3 span:eq(0)") id3下面的span第一个
    $("#3").children().eq(0) id3下面的第一个子元素
      

  2.   

    不会吧?$("#3 span").eq(0)   和$("#3 span:eq(0)")调试的时候也是同一个节点啊
    不信你用firebug试下
    console.log($("#1 span").eq(0));
    console.log($("#1 span:eq(0)"));
      

  3.   

    得到的是同一个元素都是id为3下的第一个span标签。第一个确实不能实现,可以这样写:
    $("#3 span").eq(0).click(function(){
        alert('s');
        alert("first div");
    });
      

  4.   


    为什么用live,第一个就不行呢?
      

  5.   

    .eq 和 :eq 是有区别的 :eq()是0 based index, 必须要>=0,
    .eq()无所谓  负值就是倒着数, -1就是最后一个。.live是绑定到selector上的 所以
    $("#3 span:eq(0)") 这个是selector可以
    $("#3 span").eq(0) 这个是jquery object,不可以。最后说下不相关的,其实.live和<span onclick="" 是不一样的。
      

  6.   

    $("#div[id='dv']").eq(0)和$("#div[id='div']:eq(0)")等效
      

  7.   

    怎么编辑帖子啊
    我最后的意思是给span加.live('click', function()); 
    和span自带click功能<span onclick="" />还是有一定区别的。 但大部分情况下可以忽略。
      

  8.   


    说等效是错误的 需要selector的时候 $("#div[id='dv']").eq(0) 是不会工作的