目录
JavaScript最近距离()方法的实际用例
厌倦了JavaScript的父节点遍历挑战?找到合适的祖先元素可能很棘手,尤其是在深层嵌套或动态的HTML结构中。让我们探讨closest()
方法如何简化此过程。
考虑此HTML片段:
<div data-id="123"> 点击我 </div>
登录后复制
使用parentNode
直接获取data-id
在按钮之后:
const button = document.queryselector(“ button”); button.AddeventListener(“单击”,(EVT)=> { console.log(evt.target.parentnode.dataset.id); //打印“ 123” });
登录后复制
但是,这种方法失败了,筑巢更复杂:
<div data-id="123"> <div> <h1 id="一些标题">一些标题</h1> <button>点击我</button> </div> </div>
登录后复制
链接多次parentNode
是繁琐且无法实现的。循环while
涉及的较旧的解决方案:
函数getParentNode(el,tagName){ while(el && el.parentnode){ el = el.parentnode; if(el && el.tagname === tagname.touppercase()){ 返回el; } } 返回null; }
登录后复制
功能性虽然不灵活,并且不处理超越标签名称的选择器。 jQuery的.closest()
提供了一个出色的解决方案,但是为单个功能添加库通常是过度的。
输入Element.closest()
本地Element.closest()
方法提供了一个优雅的解决方案:
const button = document.queryselector(“ button”); console.log(button.closest(“ div”)); //返回<div> 元素<p><code>closest()</code>向上遍历DOM,直到找到符合提供的选择器的祖先为止。此选择器可以是任何有效的CSS选择器:ID,类,属性或标签名称。</p> <pre class="brush:php;toolbar:false"> element.closest(“#my-id”); //工作 element.closest(“。my-class”); //工作 element.closest(“ [data-id]”); //工作
登录后复制
如果找不到匹配的祖先, closest()
返回null
。这使有条件的检查变得容易:
const button = document.queryselector(“ button”); if(button.closest(“。my-class”)){ console.log(“找到!”); } 别的 { console.log(“找不到!”); }
登录后复制
现实世界应用
- 下拉次数:检测到下拉菜单外的单击以关闭它:
// ...(事件处理代码)... 如果(!evt.target.closest(“。菜单dropdown”)){ //关闭下拉 }
登录后复制
- 表:与这些行中的按钮交互时,从表行中检索数据属性:
功能getUserid(target){ 返回target.closest(“ [data-userid]”)。dataset.userid; }
登录后复制
- 反应表:与上述相似,但在一个反应组件中:
功能handleclick(evt){ const userId = evt.currenttarget.closest(“ [data-userid]”)。dataset.userid; // ... }
登录后复制
- 模态:单击模式内容外关闭模式:
// ...(事件处理代码)... 如果(!evt.target.closest(“。modal-inner”)){ //关闭模态 }
登录后复制
浏览器支持
Element.closest()
享有出色的浏览器支持,不包括旧版本的Internet Explorer。这使其成为大多数项目的安全可靠选择。
Element.closest()
提供了一种简洁有效的方法来导航DOM层次结构,从而消除了许多常见场景中对复杂循环或外部库的需求。它的多功能性和广泛的浏览器支持使其成为任何JavaScript开发人员的宝贵工具。
以上是JavaScript最近距离()方法的实际用例的详细内容。更多信息请关注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
Inzoi:如何申请学校和大学
1 个月前
By DDD
如何修复KB5055518无法在Windows 10中安装?
3 周前
By DDD
在哪里可以找到Atomfall中的站点办公室钥匙
4 周前
By DDD

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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