慕神3006938
2016-06-24 10:23
<script type="text/javascript">
$("button:last").click(function() {
//找到所有class=item-3的li
//然后给每个li,然后筛选出第一个,加上蓝色的边
$('.item-2').next(':first').css('border', '1px solid blue')
})
</script>
为什么只有第一个盒子有效了?其他两个盒子怎么没有匹配?不是只匹配直接的兄弟元素吗?那不就是唯一的一个了为什么还要筛选?
'.first'去掉就可以得到你想要的结果。
你数一下.item-2 有几个,有3个吧,那么 $('.item-2').next()之后是不是也应该有三个直接兄弟元素.item-3(每一个.item-2对应一个.item-3)。那.next(':first')就是筛选这三个.item-3的第一个。懂不?
找的是.item-2这个节点的下一个节点集合,然而这个节点是这个集合的第一个!
类似于$('li:first'),找出li这个集合的第一个节点元素
你加上了first,只会筛选出选中集合的第一个
因为 :first , 你换成 :last ,就变成最后一个了! 你研究一下 :first 和 :last 你就明白了
jQuery基础(二)—DOM篇
114012 学习 · 590 问题
相似问题