扫码关注官方订阅号
想实现的是点击之后 自己隐藏 下一个兄弟元素显示,以此类推 可出现的结果是 后面的兄弟元素都显示, 求解!
效果:
执行代码部分:
出现的错误效果:
求解什么情况?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
var tag=("#menu_con .tag:visible"); tag.hide(); if(tag.next().length==0){ $("#menu_con .tag").eq(0).show(); }else{ tag.next().show(); }
$('#menu_con .tag')已经把所有menu_con下的tag都选中了,你以为你只是执行了第一个,其实他们每一个都执行了
$('#menu_con .tag') 会遍历所有的p.tag
$('#menu_con .tag')
p.tag
<style> #menu_con .tag {display:none;} #menu_con .tag.show {display:block;} </style> <p id="#menu_con"> <p class="tag show"></p> <p class="tag"></p> <p class="tag"></p> </p>
$('xxx').click(function(){ $("menu_con .show").addClass('show').next().removeClass('show'); })
因为你是选择的所有.tag这个class。你得使用$(this);
$('.tag').on('click', function(){ $(this).hide().next().show(); })
先解释为什么,然后再给你解决方案。$('#menu_con .tag') 这个已经是选中所有满足的元素了,所以当你.css('display', 'none')时,所有都是隐藏了。而当你再.next().css() 时,也就是除了第一个元素外,其他所有元素都展示了。
.css('display', 'none')
.next().css()
你要的效果是“点击之后 自己隐藏 下一个兄弟元素显示”,那么可以这样:
$("#menu_con .tag").on('click', function(){ $(this).css('display', 'none'); $(this).next().css('display', 'block'); });
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
$('#menu_con .tag')已经把所有menu_con下的tag都选中了,你以为你只是执行了第一个,其实他们每一个都执行了
$('#menu_con .tag')会遍历所有的p.tag因为你是选择的所有.tag这个class。
你得使用$(this);
先解释为什么,然后再给你解决方案。
$('#menu_con .tag')这个已经是选中所有满足的元素了,所以当你.css('display', 'none')时,所有都是隐藏了。而当你再.next().css()时,也就是除了第一个元素外,其他所有元素都展示了。你要的效果是“点击之后 自己隐藏 下一个兄弟元素显示”,那么可以这样: