如何从 CSS nth-child 选择器计数中排除隐藏元素?
如何避免 CSS nth-child 选择器中的隐藏元素
使用按钮点击隐藏带有 display: none 的元素时,nth-child 选择器会同时考虑可见和隐藏项目。这可能会破坏不同行的样式模式。
说明:
CSS nth-child() 选择器根据元素在兄弟元素中的位置来匹配元素。然而,即使使用 display: none,隐藏元素仍保留在 DOM 中,导致计数不正确。
解决方案:
从第 n 个子元素计数中排除隐藏元素,您必须将它们从 DOM 中完全删除。但是,使用remove()方法会阻止它们稍后恢复,从而干扰切换功能。
替代方法:
相反,使用jQuery的detach()方法,该方法保留事件侦听器和其他元数据。操作方法如下:
var divs; $('.photos-board-item').each(function(i){ $(this).data('initial-index', i); }); $('.hide-others').on('click', function () { if(divs) { $(divs).appendTo('.row').each(function(){ var oldIndex = $(this).data('initial-index'); $('.photos-board-item').eq(oldIndex).before(this); }); divs = null; } else { divs = $('.css--all-photo').detach(); } });
登录后复制
说明:
此代码切换所选 div 的可见性,同时保持正确的第 n 个子级数:
- 将分离的div存储在divs变量中。
- 如果div不为空,则之前已被单击过。根据 div 的初始索引数据属性将它们按原始顺序追加回行。
- 如果 div 为空,则分离指定的 div 并将它们存储在 div 中。
优点:
- 尽管存在隐藏元素,仍保留第 n 个子级的准确性。
- 允许轻松切换可见性,而不破坏视觉设计。
- 否需要更改 HTML 或 CSS。
以上是如何从 CSS nth-child 选择器计数中排除隐藏元素?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
Windows 11 KB5054979中的新功能以及如何解决更新问题
4 周前
By DDD
如何修复KB5055523无法在Windows 11中安装?
3 周前
By DDD
如何修复KB5055518无法在Windows 10中安装?
3 周前
By DDD
R.E.P.O.的每个敌人和怪物的力量水平
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
蓝王子:如何到达地下室
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

在元素个数不固定的情况下如何通过CSS选择第一个指定类名的子元素在处理HTML结构时,常常会遇到元素个数不�...
