我需要使用jQuery选择所有具有相同类的父项
现在我只能选择一个元素,但我想选择所有父元素
<div class="text">
<div class="text">
<div class="text">
<div class="text">
<div class="text">
<div class="text-3">
hi
</div>
</div>
</div>
</div>
</div>
</div>
在此我需要选择.text-3
的父元素,其text
作为类名
答案 0 :(得分:4)
您可以使用 parents() :
获取当前匹配组中每个元素的祖先 元素,可选择由选择器过滤。
var parents = $('.text-3').parents('.text')
或 has() :
将匹配元素集减少到具有后代的元素集 与选择器或DOM元素匹配。
var parents = $('.text').has('.text-3')
答案 1 :(得分:3)
使用 .parents() :
描述:获取当前匹配元素集中每个元素的祖先,可选择通过选择器进行过滤。
$('.text-3').parents('.text')
迭代每个元素,使用:
$('.text-3').parents('.text').each(function(){
//code here
});
<强> Working Fiddle 强>
答案 2 :(得分:1)
尝试使用.parents():
$('.text-3').parents('.text')
链接网站的示例:
查找每个b的所有父元素。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>parents demo</title>
<style>
b, span, p, html body {
padding: .5em;
border: 1px solid;
}
b {
color: blue;
}
strong {
color: red;
}
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div>
<p>
<span>
<b>My parents are: </b>
</span>
</p>
</div>
<script>
var parentEls = $( "b" ).parents()
.map(function() {
return this.tagName;
})
.get()
.join( ", " );
$( "b" ).append( "<strong>" + parentEls + "</strong>" );
</script>
</body>
</html>
我的父母是:SPAN,P,DIV,BODY,HTML