jQuery Traversing Ancestors Elements Tutorial in Hindi

jQuery Ancestors in Hindi

jQuery Traversing में ancestors के जरिये किसी element की parent, grant-parent, great-grant-parent और ऊपर के ancestors को target किया जा सकता है |

ancestors methods कई methods का समारोह है और वो है:

  1. parent
  2. parents
  3. parentsUntil
  4. offsetParent
  5. closest

parent()

parent() method के जरिये किसी element के immediate parent को select किया जा सकता है | ये method, DOM tree में सिर्फ एक ही top level तक traverse करता है |

उदाहरण:

<!DOCTYPE html>
<html>  
<head>
    <style>
        .grant-parent{
            border: 2px solid gray;
            background-color: rgb(247, 222, 222);
            padding: 5px;
            margin: 10px;
        }
        .parent{
            border: 2px solid blue;
            background-color: sandybrown;
            padding: 5px;
            margin: 10px;
        }
        .child{
            display: inline-block;
            border: 2px solid gray;
            background-color: rgb(207, 241, 155);
            padding: 5px;
            margin: 10px;
            width:100px;
            height: 50px;;
        }
    </style>
    <script src=
    "https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
   </script>
   <script>
     $(document).ready(function(){
        $("#child1").parent().css({
            "background-color": "yellow"
        });
     });
   </script> 
</head>
<body>  
    <div class="grant-parent" style="width: 500px;">
      <h2>grant parent</h2> 
      <div class="parent">  
      <h2>parent</h2>
      <div class="child" id="child1">child1</div>
      <div class="child" id="child2">child2</div>            
    </div>
   </div>
</body>  
</html>

output

jquery parent method

उदाहरण में देखिए child1 का जो immediate parent है सिर्फ उसीका background-color बदला है |

parents()

इस method से element के जितने भी ancestors हैं parent, grant-parent, great-grant parent सारे एक साथ select हो जातें हैं |

उदाहरण:

<!DOCTYPE html>
<html>  
<head>
    <style>
        .grant-parent{
            border: 2px solid gray;
            background-color: rgb(247, 222, 222);
            padding: 5px;
            margin: 10px;
        }
        .parent{
            border: 2px solid blue;
            background-color: sandybrown;
            padding: 5px;
            margin: 10px;
        }
        .child{
            display: inline-block;
            border: 2px solid gray;
            background-color: rgb(207, 241, 155);
            padding: 5px;
            margin: 10px;
            width:100px;
            height: 50px;;
        }
    </style>
    <script src=
    "https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
   </script>
   <script>
     $(document).ready(function(){
        $("#child1").parents().css({
            "background-color": "aliceblue"
        });
     });
   </script> 
</head>
<body>  
    <div class="grant-parent" style="width: 500px;">
      <h2>grant parent</h2> 
      <div class="parent">  
      <h2>parent</h2>
      <div class="child" id="child1">child1</div>
      <div class="child" id="child2">child2</div>            
    </div>
   </div>
</body>  
</html>

output

jquery parents

output में देखिये child1 का सभी parents का background-color अब बदल गया है | ये body tag का भी background-color बदल दिया है क्यूँ की body tag सभी elements का root parent होता है |

parents() method में condition लगाके हम किसी specific parent को भी target कर सकतें हैं | जैसे की child1 की grant-parent को target करना हो तो उदाहरण में देखिये:

उदाहरण:

<script>
     $(document).ready(function(){
        $("#child1").parents('.grant-parent').css({
            "background-color": "aliceblue"
        });
     });
</script>

output

jquery parents with condition

output में देखिए हमने parents() method में condition लगाकर सिर्फ grant-parent की background-color बदली है |

parentsUntil()

parentsUntil() method के जरिये selector के कोनसे parents तक target करना है वो condition लगा सकतें हैं |

Syntax: $(selector).parentsUntil(stop);

stop parameter बताता है की कहाँ तक target करना है |

उदाहरण:

<!DOCTYPE html>
<html>  
<head>
    <style>
        .great-grant-parent{
            border: 2px solid gray;
            background-color: rgb(247, 222, 222);
            padding: 10px;
            margin: 35px;
        }
        .grant-parent{
            border: 2px solid rgb(48, 48, 78);
            background-color: rgb(166, 240, 203);
            padding: 10px;
            margin: 10px;
        }
        .parent{
            border: 2px solid blue;
            background-color: sandybrown;
            padding: 10px;
            margin: 10px;
        }
        .child{
            display: inline-block;
            border: 2px solid gray;
            background-color: rgb(207, 241, 155);
            padding: 5px;
            margin: 10px;
            width:100px;
            height: 50px;;
        }
    </style>
    <script src=
    "https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
   </script>
   <script>
     $(document).ready(function(){
        $("#child1").parentsUntil('.great-grant-parent').css({
           "background-color": "yellow"
        });
     });
   </script> 
</head>
<body>  
    <div class="great-grant-parent" style="width: 600px;">
      <h2>great grant parent</h2>
      <div class="grant-parent" id="grant-parent">
       <h2>grant parent</h2> 
       <div class="parent">  
        <h2>parent</h2>
        <div class="child" id="child1">child1</div>
        <div class="child" id="child2">child2</div>            
      </div>
     </div>
   </div>
</body>  
</html>

output

jquery parentsUntil method

उदाहरण में देखिये हमने stop parameter में great-grant-parent डाला था इसीलिए child1 से लेकर great-grant-parent तक जितने भी parents थे उसे ये target कर लिया |

offsetParent()

offsetParent() method उन parent elements को target करता है जिसमें position property लगी होती है |

उदाहरण:

<!DOCTYPE html>
<html>  
<head>
    <style>
        .great-grant-parent{
            border: 2px solid gray;
            background-color: rgb(247, 222, 222);
            padding: 10px;
            margin: 35px;
        }
        .grant-parent{
            border: 2px solid rgb(48, 48, 78);
            background-color: rgb(166, 240, 203);
            padding: 10px;
            margin: 10px;
        }
        .parent{
            border: 2px solid blue;
            background-color: rgb(229, 247, 127);
            padding: 10px;
            margin: 10px;
        }
        .child{
            display: inline-block;
            border: 2px solid gray;
            background-color: rgb(224, 250, 185);
            padding: 5px;
            margin: 10px;
            width:100px;
            height: 50px;;
        }
    </style>
    <script src=
    "https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
   </script>
   <script>
     $(document).ready(function(){
        $("#child1").offsetParent().css({"background-color": "blue"});
     });
   </script> 
</head>
<body>  
    <div class="great-grant-parent" style="width: 600px;">
      <h2>great grant parent</h2>
      <div class="grant-parent" id="grant-parent" style="position:relative;">
       <h2>grant parent</h2> 
       <div class="parent">  
        <h2>parent</h2>
        <div class="child" id="child1">child1</div>
        <div class="child" id="child2">child2</div>            
      </div>
     </div>
   </div>
</body>  
</html>

output

jquery offsetparent method

उदाहरण में देखिये grant-parent में position property लगा था इसीलिए उसीकी background-color बदला |

नॉटपॉइंट : offsetParent method उस पहले parent को select करता जिसमें position property लगी होती है |

closest()

ये condition based method है, इसमें pass किया हुआ parameter के हिसाब से जो भी नजदीकी parent मिलता है उसे select करता है |

पर ये DOM tree में current element यानि खुदसे सुरुआत करता है |

Syntax: $(selector).closest(filter);

उदाहरण:

<script>
     $(document).ready(function(){
        $("#child1").closest('div').css({"background-color": "blue"});
     });
   </script>

अन्य सुझाव