获取指定 Parent 之前的所有信息 Parent
Get All Parents Info Up Until Specified Parent
我有这个 html 代码示例:
<html>
<body>
<div>
<div id="stophere">
<h4 class="parentclass">
<span class="target">Clicked</span>
</h4>
</div>
</div>
</body>
</html>
从上面的 html 代码示例中,我想从 div ID stophere
.
我试过这段代码:
$(ev.target).parents()
.map(function() {
return this.tagName;
})
.get()
.join( ", " );
但它包括 stophere
以上的所有 parents 个标签名称。虽然我想要的结果只有 1 div
和 1 h4
.
从 stophere
中获取所有 target
的 parents 的正确方法是什么?
您可以使用 parentsUntil
方法
$(ev.target).parentsUntil($('#stophere').parent())
请注意,它是非包含性的,因此我们传递 #stophere
的父级以包含该元素
我并不是说这是一个好的解决方案,但如果 adeneo 的解决方案在您的情况下失败时可以使用,就像我的情况一样。
此代码使用 find()
方法检查遍历限制是否包含该限制线本身:
jQuery('html').on("click", function (ev) {
var elemparentid = jQuery(ev.target).closest("[id]").attr("id");
var thisparents = jQuery(ev.target).parents()
.map(function () {
// check if traversing limit is a children of current element or not, by using find() method
if (jQuery(this).find("#" + elemparentid).length < 1) {
return this.tagName;
}
}).get()
.join(", ");
alert(thisparents);
});
我有这个 html 代码示例:
<html>
<body>
<div>
<div id="stophere">
<h4 class="parentclass">
<span class="target">Clicked</span>
</h4>
</div>
</div>
</body>
</html>
从上面的 html 代码示例中,我想从 div ID stophere
.
我试过这段代码:
$(ev.target).parents()
.map(function() {
return this.tagName;
})
.get()
.join( ", " );
但它包括 stophere
以上的所有 parents 个标签名称。虽然我想要的结果只有 1 div
和 1 h4
.
从 stophere
中获取所有 target
的 parents 的正确方法是什么?
您可以使用 parentsUntil
方法
$(ev.target).parentsUntil($('#stophere').parent())
请注意,它是非包含性的,因此我们传递 #stophere
的父级以包含该元素
我并不是说这是一个好的解决方案,但如果 adeneo 的解决方案在您的情况下失败时可以使用,就像我的情况一样。
此代码使用 find()
方法检查遍历限制是否包含该限制线本身:
jQuery('html').on("click", function (ev) {
var elemparentid = jQuery(ev.target).closest("[id]").attr("id");
var thisparents = jQuery(ev.target).parents()
.map(function () {
// check if traversing limit is a children of current element or not, by using find() method
if (jQuery(this).find("#" + elemparentid).length < 1) {
return this.tagName;
}
}).get()
.join(", ");
alert(thisparents);
});