javascript - querySelector 在没有 jQuery 的情况下选择最近的祖先
问题描述
<style type="text/css">
.card{
background:green;
}
</style>
<div class="card">
inside first
<div class="card" id="tryingtoselectthis">
inside second
<div class="card" id="myselector">
inside third
</div>
</div>
</div>
<script type="text/javascript">
console.log(document.querySelector("#myselector").closest(".card"));
</script>
我正在尝试使用仅使用该类#tryingtoselectthis
的选择器进行选择。.myselector
请注意,同一个班级可能有无限数量的孩子,我要做的就是选择上面同一个班级的父母。
parentNode
不起作用。并且,必须使用其类名来选择节点。
没有 jQuery
解决方案
您快到了,但如果您不希望最初选择的元素成为可能的结果,则必须调用closest
其父元素,而不是所选元素。
console.log(document.querySelector("#myselector").parentElement.closest(".card").id);
.card {
background: green;
}
<div class="card">
inside first
<div class="card" id="tryingtoselectthis">
inside second
<div class="card" id="myselector">
inside third
</div>
</div>
</div>
请注意,像 IE 这样的古老浏览器将需要 polyfill。
推荐阅读
- sorting - 使用特定列,输出在文本文件中出现 3 次的行
- node.js - 如何在 MongoDB(猫鼬)中填充没有 ref 的数组字段?
- lua - 从表中删除项目时,如何避免在 Lua 中创建零引用?
- javascript - 验证数组中的值是否相同或不同
- sql - 如何使用 postgresql 获取 json 对象作为列值?
- mysql - 是否可以绕过 MySQL Azure 的限制?
- java - 如何查看从未来对象执行的线程(名称)
- google-cloud-platform - 检查 Google Cloud API 和服务错误日志
- python - 什么 Cygwin 包允许我调试 Python 代码?
- javascript - 在没有ajax的情况下获取并发送一个Json文件(拖放)到服务器