Főoldalra

jQuery closest()


closest()      Visszatér kiválasztott elemhez tartozó, kiválasztott legközelebbi ősével.(Szülőelemével.) 
                                 Ősök: Szülő - nagyszülő - dédszülő - ükszülő - stb.

Keresés kezdődik az utolsó aktuális (kiválasztott) elemmel, majd megy fel a DOM fában, és visszatér a közvetlen szülő őse, 
mely megegyezik a  kiválasztott szülőelemmel.
Visszatéréskor a visszaadott jQuery objektum: nulla, egy elem, vagy több elem. Megjegyzés: A jQuery hibátlan működéséhez, be kell tartani a szabályos xhtml előírásokat. - Minden kezdő jelölőelemnek, legyen záró eleme. - Ugyanazon id azonosítóval, csak egy jelölőelem szerepelhet. - Ugyanazon class osztályazonosítóval, több jelölőelem is szerepelhet.




Példa

<div id="lista">
    <ul id="UL01">
  • <li id="LI01" class="LI01"> <span class="Sp01"> </span> <span class="Cp01"> </span>
    <ul id="UL02">
  • <li id="LI02" class="LI02"> <span class="Sp02"> </span> <span class="Cp01"> </span>

1.

2.

3.

4.

5.

6.

7.




--------------------------->



<head>
<script src=https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js></script>

<script>
$(document).ready(function(){

// Kiválasztott span elem, mint saját maga.
    $("#btnT01").click(function(){
	
		$(".Sp01").closest("span").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
    });
// Kiválasztott span elem, közvetlen szülőeleme.
    $("#btnT02").click(function(){
	
		$(".Sp01").closest("li").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
    });
// Kiválasztott span elem, Nagyszülő.
    $("#btnT03").click(function(){
	
		$(".Sp01").closest("ul").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
	});
// Kiválasztott span elem, Dédszülő.	
    $("#btnT04").click(function(){
	
		$(".Sp01").closest("div").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
    });
// Kiválasztott li elem, közvetlen szülőeleme.
    $("#btnT05").click(function(){
	
		$(".LI01").closest("ul").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
    });
// Kiválasztott li elem, Nagyszülő.
    $("#btnT06").click(function(){
	
		$(".LI01").closest("div").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
    });
	
// Kiválasztott ul elem, közvetlen szülőeleme.
    $("#btnT07").click(function(){
	
		$("#UL01").closest("div").css({"color": "black", "border": "2px solid red", "background-color": "orange"});
	});
	
});

</script>
</head>

<body>

<div id="lista">
        <ul id="UL01">
                <li class="LI01"> 
                        <span class="Sp01"> li a szülőeleme.</span> 
                </li>
        </ul>
</div>

<button id="btnT01">$(".Sp01").closest("span") <br /> span gyermek.</button> 
<button id="btnT02">$(".Sp01").closest("li")      <br /> span szülőeleme.</button> <br />
<button id="btnT03">$(".Sp01").closest("ul")     <br /> span nagyszülő.</button> 
<button id="btnT04">$(".Sp01").closest("div")    <br /> span dédszülő</button> <br />
<button id="btnT05">$(".LI01").closest("ul")       <br /> li szülőeleme.</button> 
<button id="btnT06">$(".LI01").closest("div")      <br /> li nagyszülő.</button> <br />
<button id="btnT07">$("#UL01").closest("div")    <br /> ul szülőeleme.</button>

</body>


 

 

 

Példa, mely nem teljesen szabályos.

Ebben a példában, nem minden esetben tartjuk be, az xhtml szabályokat, és lekérdezési szabályokat.
Ugyanazon id azonosítóból több is van.
Lekérdezendő elemet pontosan meghatározzuk, vagy általánosságban és nem pontosan határozzuk meg.

<div>

<p> <span class="spn"> p a szülőeleme.</span>

    <ul id="dom"> ul (második őse - második nagyszülő)
      <ul id="dom"> ul (első őse - első nagyszülő)
    • <li> <span> li a szülőeleme.</span>
    • <li> <span class="spn"> li a szülőeleme.</span>
      <ol id="dom">
    1. <li> <span id="Sp04"> li a szülőeleme.</span>
    2. <li> <span id="Sp05" class="spn"> li a szülőeleme.</span>
  • <li> ul a szülőeleme.</li>

<p> <span class="Pspan"> p a szülőeleme.</span>

    <ul id="ul03">
  • <li> <span class="clp""> li a szülőeleme.</span>
  • <li> <span class="clp"> li a szülőeleme.</span>
    <ol id="ol02">
  1. <li><span> li a szülőeleme.</span>
  2. <li> <span class="spn"> li a szülőeleme.</span>
    <ul>
  • <li> (közvetlen szülő) <span> li a szülőeleme.</span>
    <ol>
  1. <li> (közvetlen szülő) <span> li a szülőeleme.</span>

Nem kell elemek, beazonosítása:
var SP = document.getElementById("Sp05");
var ID = document.getElementById("dom");
var list = document.getElementById("ul03");
var lista = document.getElementById("ol02");