jquery选择器 -- 选中每一个标签的第一个子标签

2014-11-26 15:45:48   最后更新: 2014-11-29 20:56:38   访问数量:1317




写页面的时候遇到一个问题,抽象一下就是这样:

 

<span class='label'><i></i><i></i></span> <span class='label'><i></i><i></i></span> <span class='label'><i></i><i></i></span> <span class='label'><i></i><i></i></span> <span class='label'><i></i><i></i></span>

 

 

要对每一个 span 的第一个 i 进行操作,比如 addClass('aa')

 

网友给出了两个答案:

$('span.label i:first').addClass('aa')

 

实际上这个选择器只选中了第一个 span 的第一个 i

 

于是另一个网友给出了答案:

$("span[class=lable] i:eq(0)").addClass("aa")

 

实际上 eq(0) 选中的是第一个 span 的第一个 i,eq(1) 选中的是第一个 span 的第二个 i,也是不符合要求的

 

最终自己尝试出了一种方法:

$('span.lable').each( function() { $('i:first', this).addClass('aa'); } )

 

史原杰告诉了我另一种方法:

$('span.label i:nth-child(1)').addClass('aa')

 

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤

 






技术帖      web      技术分享      遗留问题      jquery      前端      web前端      javascript      js      已解决     


京ICP备15018585号