为什么有:eq()与.eq()的不同

yjzz_php 2011-08-31 06:20:08
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,上述两者都能实现
...全文
310 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenweiyu 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 obananao 的回复:]

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

说等效是错误的 需要selector的时候 $("#div[id='dv']").eq(0) 是不会工作的
stevenweiyu 2011-09-01
  • 打赏
  • 举报
回复
怎么编辑帖子啊
我最后的意思是

给span加.live('click', function());
和span自带click功能<span onclick="" />还是有一定区别的。 但大部分情况下可以忽略。

988kook 2011-09-01
  • 打赏
  • 举报
回复
$("#div[id='dv']").eq(0)和$("#div[id='div']:eq(0)")等效
stevenweiyu 2011-09-01
  • 打赏
  • 举报
回复
.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="" 是不一样的。
BLUE_LG 2011-08-31
  • 打赏
  • 举报
回复
应该是live()的问题。。
yjzz_php 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jike316 的回复:]
得到的是同一个元素都是id为3下的第一个span标签。第一个确实不能实现,可以这样写:
$( "#3 span ").eq(0).click(function(){
alert( 's ');
alert( "first div ");
});
[/Quote]

为什么用live,第一个就不行呢?
2399 2011-08-31
  • 打赏
  • 举报
回复
得到的是同一个元素都是id为3下的第一个span标签。第一个确实不能实现,可以这样写:
$("#3 span").eq(0).click(function(){
alert('s');
alert("first div");
});
BLUE_LG 2011-08-31
  • 打赏
  • 举报
回复
不会吧?$("#3 span").eq(0) 和$("#3 span:eq(0)")调试的时候也是同一个节点啊。。。
不信你用firebug试下
console.log($("#1 span").eq(0));
console.log($("#1 span:eq(0)"));
qq137051908 2011-08-31
  • 打赏
  • 举报
回复
$("#3 span:eq(0)") id3下面的span第一个
$("#3").children().eq(0) id3下面的第一个子元素
三石-gary 2011-08-31
  • 打赏
  • 举报
回复
.eq()有这种写法?

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧