我有这个html代码示例:
<html>
<body>
<div>
<div id="stophere">
<h4 class="parentclass">
<span class="target">Clicked</span>
</h4>
</div>
</div>
</body>
</html>
从上面的html代码示例中,我想从ID为target
的div中获取所有父母的类stophere
的标记名称(在接收点击事件时)。
我试过这段代码:
$(ev.target).parents()
.map(function() {
return this.tagName;
})
.get()
.join( ", " );
但它包含stophere
以上所有父母的标记名称。虽然我想要的结果只有1 div
和1 h4
。
让target
的所有父母从stophere
下来的正确方法是什么?
答案 0 :(得分:4)
您可以使用parentsUntil
方法
$(ev.target).parentsUntil($('#stophere').parent())
请注意,它不具有包容性,因此我们传递#stophere
的父级以包含该元素
答案 1 :(得分:0)
我不是声称这是一个很好的解决方案,但是如果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);
});
https://github.com/spring-projects/spring-boot/blob/master/CONTRIBUTING.adoc