<分区>
很抱歉提出此类问题,但我在You Might Not Need jQuery 上找不到答案。或在线其他任何地方,我真的很想知道:
jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?
例如,如果知道如何在纯 JavaScript 中执行此操作会很棒:
jQuery(element).parents('.className');
<分区>
很抱歉提出此类问题,但我在You Might Not Need jQuery 上找不到答案。或在线其他任何地方,我真的很想知道:
jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?
例如,如果知道如何在纯 JavaScript 中执行此操作会很棒:
jQuery(element).parents('.className');
最佳答案
DOM API 中没有一个函数/属性等同于 jQuery 的 parents()
.有 parentNode
属性(以及 Oriol points out 和 parentElement
属性,这将阻止您从 document.documentElement
到 document
),这是您访问它的元素的父节点(或父元素),或者null
如果没有。大致匹配 jQuery 的 parents()
,你可以在它上面循环(例如,获取 parentNode
/parentElement
的 parentNode
/parentElement
等)来找到所有的 parent 。作为squint notes , 在每个级别的模糊现代浏览器上你可以使用 matches
检查父级是否与选择器匹配(当您将选择器传递给它时,将 jQuery 的行为与 parents()
匹配)。
jQuery 采用基于集合的方法进行 DOM 操作和遍历,而 DOM API 采用基于元素/节点的方法。
例子:
var elm = document.getElementById("target");
var parents = getParents(elm);
console.log(Array.prototype.map.call(
parents,
function(e) {
return e.nodeName + (e.id ? "#" + e.id : "");
}
).join(", "));
function getParents(e) {
var result = [];
for (var p = e && e.parentElement; p; p = p.parentElement) {
result.push(p);
}
return result;
}
<div id="outermost">
<div id="middle">
<div id="inner">
<div id="target"></div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
关于javascript - jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469830/
相关文章:
javascript - 无法在 javascript 中回显 php 值
javascript - 老式 JavaScript 类和高级 JS 缩小问题
javascript - 无法通过 auth.onAuthStateChanged 中的 currentUser 访问 displayName - Firebase
javascript - 选中复选框时显示隐藏按钮并隐藏可见按钮
javascript - jQuery 可排序标签点击事件不起作用
python - Gstreamer 编辑服务。播放真实的视频文件。 GESAsset 元素(从 Python 翻译为 C)
javascript - 是否可以将 C 代码编译为 Javascript 代码?