如何在jQuery中找到具有已知类的父级?

2020/10/10 14:40 · javascript ·  · 0评论

我有一个<div>其中包含许多其他<div>的,每个处于不同的嵌套级别。与其给每个孩子<div>一个标识符,不如给根节点<div>一个标识符。这是一个例子:

<div class="a" id="a5">
  <div class="b">
    <div class="c">
      <a class="d">
      </a>
    </div>
  </div>
</div>

如果我在jQuery中编写了一个函数来响应类,d并且想找到其父类class的ID,a我该怎么做?

我不能简单地做$('.a').attr('id');,因为有多个类a我可以找到其父代的父代的ID,但这似乎设计欠佳,速度较慢,而且不是多态的(我必须编写不同的代码来查找类的ID c)。

假设this.d,您可以编写

$(this).closest('.a');

closest方法返回与选择器匹配的元素的最里面的父级。

将选择器传递给jQuery Parent函数:

d.parents('.a').attr('id')

编辑嗯,如果您只想要与选择器匹配的最接近的祖先,实际上Slaks的答案会更好。

您可以使用parents()来获得具有给定选择器的所有父母。

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

但是parent()只会获得元素的第一个父元素。

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

jQuery parent()与父母()

而且有.parentsUntil() 我认为将是最好的。

描述:获取当前匹配元素集中每个元素的祖先,直到但不包括选择器匹配的元素。

使用.parentsUntil()

$(".d").parentsUntil(".a");

摘自上面@Resord的评论。这对我有用,对这个问题更贴切。

$(this).parent().closest('.a');

谢谢

本文地址:http://javascript.askforanswer.com/ruhezaijqueryzhongzhaodaojuyouyizhileidefuji.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!