ancêtres jQuery


jQuery Traversal - Ancêtres

L'ancêtre est le père, le grand-père, l'arrière-grand-père, etc.

Avec jQuery, vous pouvez parcourir l'arborescence DOM pour trouver les ancêtres d'un élément.


Parcourez l'arborescence DOM

Ces méthodes jQuery sont très utiles Utile, ils sont utilisés pour parcourir l'arborescence DOM :

parent()

parents()

parentsUntil()


Méthode jQuery parent()

La méthode parent() renvoie l'élément parent direct du élément sélectionné.

Cette méthode ne parcourra l'arborescence DOM qu'un niveau plus haut.

L'exemple suivant renvoie l'élément parent immédiat de chaque élément <span> :

Exemple

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.ancestors *
{ 
	display: block;
	border: 2px solid lightgrey;
	color: lightgrey;
	padding: 5px;
	margin: 15px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("span").parent().css({"color":"red","border":"2px solid red"});
});
</script>
</head>
<body>

<div class="ancestors">
  <div style="width:500px;">div (曾祖父元素)
    <ul>ul (祖父元素)  
      <li>li (父元素)
        <span>span</span>
      </li>
    </ul>   
  </div>

  <div style="width:500px;">div (祖父元素)   
    <p>p (父元素)
        <span>span</span>
      </p> 
  </div>
</div>

</body>
</html>

Exécuter l'exemple »

Cliquez sur le bouton « Exécuter l'exemple » pour afficher l'exemple en ligne


jQuery Méthode parents()

La méthode parents() renvoie tous les éléments ancêtres de l'élément sélectionné, jusqu'à l'élément racine du document (<html>).

L'exemple suivant renvoie tous les ancêtres de tous les éléments <span> :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.ancestors *
{ 
	display: block;
	border: 2px solid lightgrey;
	color: lightgrey;
	padding: 5px;
	margin: 15px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("span").parents().css({"color":"red","border":"2px solid red"});
});
</script>
</head>

<body class="ancestors">body (曾曾祖父元素)
  <div style="width:500px;">div (曾祖父元素)
    <ul>ul (祖父元素)  
      <li>li (父元素)
        <span>span</span>
      </li>
    </ul>   
  </div>
</body>

</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher un exemple en ligne

Vous pouvez également utiliser des paramètres facultatifs pour filtrer la recherche d'éléments ancêtres.

L'exemple suivant renvoie tous les ancêtres de tous les éléments <span> qui sont des éléments <ul> :

Instances

<!DOCTYPE html>
<html>
<head>
<style>
.ancestors *
{ 
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("span").parents("ul").css({"color":"red","border":"2px solid red"});
});
</script>
</head>

<body class="ancestors">body (great-great-grandparent)
  <div style="width:500px;">div (great-grandparent)
    <ul>ul (grandparent)  
      <li>li (direct parent)
        <span>span</span>
      </li>
    </ul>   
  </div>
</body>

</html>

Exécuter l'instance»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne


Méthode jQuery parentsUntil()

La méthode parentsUntil() renvoie tous les éléments ancêtres entre deux éléments donnés.

L'exemple suivant renvoie tous les éléments ancêtres entre les éléments <span> et <div> :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.ancestors *
{ 
	display: block;
	border: 2px solid lightgrey;
	color: lightgrey;
	padding: 5px;
	margin: 15px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("span").parentsUntil("div").css({"color":"red","border":"2px solid red"});
});
</script>
</head>

<body class="ancestors"> body (曾曾祖父元素)
  <div style="width:500px;">div (曾祖父元素)
    <ul>ul (祖父元素)  
      <li>li (父元素)
        <span>span</span>
      </li>
    </ul>   
  </div>
</body>

</html>

Exécuter l'instance»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne