jquery遍历之parent()和parents()的区别及parentsUntil()方法详解

前端技术 2023/09/03 JavaScript

.parent(selector) 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。

.parents(selector) 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。

如果给定一个表示 DOM 元素集合的 jQuery 对象,.parents() 方法允许我们在 DOM 树中搜索这些元素的祖先元素,并用从最近的父元素向上的顺序排列的匹配元素构造一个新的 jQuery 对象。元素是按照从最近的父元素向外的顺序被返回的。.parents() 和 .parent() 方法类似,不同的是后者沿 DOM 树向上遍历单一层级。

这两个方法都可以接受可选的选择器表达式,与我们向 $() 函数中传递的参数类型相同。如果应用这个选择器,则将通过检测元素是否匹配该选择器对元素进行筛选。


下面引用个例子

parent():http://www.w3school.com.cn/jquery/traversing_parent.asp

parents():http://www.w3school.com.cn/jquery/traversing_parents.asp


parentsUntil() 方法

定义:parentsUntil() 获得当前匹配元素集合中每个元素的祖先元素,直到(但不包括)被选择器、DOM 节点或 jQuery 对象匹配的元素。

其实,parentsUntil()方法,以及nextUntil()方法、prevUntil()方法,原理一样。唯一不同的是nextUntil()是往下,prevUntil()是往上(同辈元素),parentsUntil()也是往上(找祖先元素)

下面看一个例子:

复制代码 代码如下:

<!DOCTYPE html>
<html>
<head>
  <script type=\"text/javascript\" src=\"/jquery/jquery.js\"></script>
</head>

<body>
<ul class=\"level-1 yes\">
  <li class=\"item-i\">I</li>
  <li class=\"item-ii\">II
    <ul class=\"level-2 yes\">
      <li class=\"item-a\">A</li>
      <li class=\"item-b\">B
        <ul class=\"level-3\">
          <li class=\"item-1\">1</li>
          <li class=\"item-2\">2</li>
          <li class=\"item-3\">3</li>
        </ul>
      </li>
      <li class=\"item-c\">C</li>
    </ul>
  </li>
  <li class=\"item-iii\">III</li>
</ul>

<script>
$(\"li.item-a\").parentsUntil(\".level-1\").css(\"background-color\", \"red\");

$(\"li.item-2\").parentsUntil( $(\"ul.level-1\"), \".yes\"  )
  .css(\"border\", \"3px solid blue\");
</script>

</body>

本文地址:https://www.stayed.cn/item/8305

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。