选择所有具有相同类名的父元素。

5
我需要使用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 类名的 .text-3 的父元素。


请展示你的代码。 - Amit
您可以尝试使用 $('.text-3').parents('.text') - Satpal
选择所有具有text类的父元素?很少见同时嵌套这么多同名的类。 - Raptor
很难选择正确的答案,因为它们都是相同的 ;) - kp singh
3个回答

4
你可以使用 parents()

获取当前匹配元素集合中每个元素的祖先,可选择性地进行筛选。

var parents = $('.text-3').parents('.text')

或者 has():

将匹配元素集合减少为具有与选择器或DOM元素匹配的后代的那些元素。

var parents = $('.text').has('.text-3')

3

使用 .parents():

描述:获取当前匹配元素集合中每个元素的祖先,可选择通过选择器进行过滤。

$('.text-3').parents('.text')

要迭代每个元素,请使用:

$('.text-3').parents('.text').each(function(){
   //code here
});

演示代码

该链接为演示代码。

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。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接