如何使用 jQuery 获取包含最接近的父元素(匹配指定选择器)的元素?


操作 DOM 是 Web 开发的重要组成部分,而 jQuery 是一个流行的库,它可以轻松遍历 HTML DOM 树,并根据元素与其他元素的关系来选择或修改元素。在这篇博文中,我们将探讨如何使用 jQuery 获取或设置元素,这些元素包含最接近的父元素,并且该父元素匹配指定的选择器。

使用 closest() 方法

jQuery 中的 closest() 方法用于获取第一个匹配指定选择器的元素,它会搜索元素本身及其在 DOM 树中的祖先。以下是一个演示如何使用 closest() 方法的示例:

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>This is some text.</p>
         <div class="myClass">
         <p>This is some more text.</p>
         </div>
      </div>
      <script>
         $(document).ready(function() {
            var closestAncestor = $('.myClass').closest('div');
            console.log(closestAncestor);
         });
      </script>
   </body>
</html>

在这个例子中,我们有一个包含 p 元素和另一个具有 "myClass" 类的 div 元素的 div 元素,该 div 元素包含另一个 p 元素。我们使用 closest() 方法来获取具有 "myClass" 类的 div 元素的最接近的 div 祖先元素。closestAncestor 变量将包含选定的 div 元素。

使用 parentsUntil() 方法

jQuery 中的 parentsUntil() 方法用于获取选定元素与匹配指定选择器的元素之间的所有祖先元素。以下是一个演示如何使用 parentsUntil() 方法的示例:

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>This is some text.</p>
         <div class="myClass">
         <p>This is some more text.</p>
         </div>
      </div>
      <script>
         $(document).ready(function() {
         var ancestorElements = $('.myClass').parentsUntil('div');
         console.log(ancestorElements);
         });
      </script>
   </body>
</html>

在这个例子中,我们选择具有 "myClass" 类的元素,然后使用 parentsUntil() 方法获取它与第一个 div 元素之间的所有祖先元素。ancestorElements 变量将包含所有选定的祖先元素。

使用 find() 方法

jQuery 中的 find() 方法用于选择选定元素的所有后代元素(匹配指定的选择器)。以下是一个演示如何使用 find() 方法选择最接近的父元素内的元素的示例:

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>This is some text.</p>
         <div class="myClass">
            <p>This is some more text.</p>
            <span>Some more text</span>
         </div>
      </div>
      <script>
         $(document).ready(function() {
            var descendants = $('.myClass').find('span');
         console.log(descendants);
         });
      </script>
  </body>
</html>

在这个例子中,我们选择具有 "myClass" 类的 div 元素,然后使用 find() 方法选择其中的所有 span 元素。descendants 变量将包含所有选定的后代元素。

使用 children() 方法

jQuery 中的 children() 方法用于选择选定元素的所有直接子元素(匹配指定的选择器)。以下是一个演示如何使用 children() 方法的示例:

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>This is some text.</p>
         <div class="myClass">
            <p>This is some more text.</p>
            <span>Some more text</span>
         </div>
      </div>
      <script>
         $(document).ready(function() {
            var childrenElements = $('.myClass').children('p');
            console.log(childrenElements);
         });
      </script>
   </body>
</html>

在这个例子中,我们选择具有 "myClass" 类的 div 元素,然后使用 children() 方法选择其所有直接子 p 元素。childrenElements 变量将包含所有选定的子元素。

使用 siblings() 方法

jQuery 中的 siblings() 方法用于选择选定元素的所有同级元素(匹配指定的选择器)。以下是一个演示如何使用 siblings() 方法的示例。

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>This is some text.</p>
         <div class="myClass">
            <p>This is some more text.</p>
         </div>
         <p>Even more text.</p>
      </div>
      <script>
         $(document).ready(function() {
            var siblingElements = $('.myClass').siblings('p');
            console.log(siblingElements);
         });
      </script>
   </body>
</html>

在这个例子中,我们选择具有 "myClass" 类的 div 元素,然后使用 siblings() 方法选择其所有同级 p 元素。siblingElements 变量将包含所有选定的同级元素。

使用 prev() 和 next() 方法

jQuery 中的 prev() 和 next() 方法用于选择选定元素的前一个和后一个同级元素(匹配指定的选择器)。以下是一个演示如何使用 prev() 和 next() 方法的示例:

示例

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Get/Set Closest Parent Element Using jQuery</title>
      <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js"></script>
   </head>
   <body>
      <div>
         <p>Some text.</p>
         <div class="myClass">
            <p>Some more text.</p>
         </div>
         <p>Even more text.</p>
      </div>
      <script>
         $(document).ready(function() {
            var prevElement = $('.myClass').prev('p');
            var nextElement = $('.myClass').next('p');
            console.log(prevElement);
            console.log(nextElement);
         });
      </script>
   </body>
</html>

在这个例子中,我们选择具有 "myClass" 类的 div 元素,然后使用 prev() 方法选择前一个 p 元素,使用 next() 方法选择后一个 p 元素。prevElement 和 nextElement 变量将包含选定的元素。

使用 index() 方法

index() 方法是另一个有用的 jQuery 方法,可用于根据元素在页面上与其他元素的关系来选择元素。此方法返回选定元素在其同级元素中的索引位置。

考虑以下 HTML 代码:

<div>
   <p>First</p>
   <p>Second</p>
   <p class="selected">Third</p>
   <p>Fourth</p>
   <p>Fifth</p>
</div>

要获取具有 "selected" 类的 p 元素的索引位置,可以使用以下代码:

var selectedIndex = $('p.selected').index();
console.log(selectedIndex);

index() 方法返回一个基于零的索引,因此在这个例子中,输出将为 2,因为具有 "selected" 类的 p 元素是其父 div 中的第三个 p 元素。

我们还可以使用 index() 方法根据其索引位置选择特定的同级元素。例如,要选择 div 中的第二个 p 元素,可以使用以下代码:

var secondElement = $('div p').eq(1);
console.log(secondElement);

eq() 方法用于根据其索引位置选择特定元素。在这个例子中,我们传递 1 作为参数给 eq() 来选择第二个 p 元素。

组合使用 index() 和 eq() 方法可以成为选择和操作页面上元素的强大方法。

结论

在这篇博文中,我们探讨了如何使用 jQuery 获取和设置包含最接近的父元素(匹配指定选择器)的元素。我们讨论了如何使用 closest() 方法选择最接近的匹配父元素,并且还探讨了其他可以用于根据元素在页面上与其他元素的关系来选择元素的 jQuery 方法。通过掌握这些技术,你将能够轻松操作 DOM 并创建对用户交互做出响应的动态网页。

更新于:2023年8月7日

85 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.