JQuery get siblings value / text in dynamically created element

Viewed 18

I want to get the .text() of the sibling customerID from the class"db_record_left" when class="db_record_left" gets clicked. The whole class="db_record" is dynamical generated. But the console.log(CustID); still prints it for every class="db_record" and not only for the clicked one.

echo'
                    <div class="db_record" id="potentialCustomer-'.$countPotentialCustomers.'">
                        <div class="db_record_left">
                            <div class="db_record_describer">'.$cus_Fname.' '.$cus_Lname.'</div>
                            <div class="db_record_info_wrapper">
                                <div class="db_record_info_describer">Adresse:</div>
                                <div class="db_record_info">'.$cus_Adress.'</div>
                                <div class="db_record_info">
                                    <span>'.$cus_ZipCode.' </span>
                                    <span>'.$cus_Locality.'</span>
                                </div>
                            </div>
                            <div class="db_record_info_wrapper">
                                <div class="db_record_info_describer">Fahrzeuge:</div>
                                '.matchVehicles($cus_Vehicles).'
                            </div>
                        </div>
                        <div class="db_record_right">
                            <div class="material-icons md-large md-ghost-white-enabeld w-embed">
                                <span class="material-icons-outlined">navigate_next</span>
                            </div>
                        </div>
                    </div>
                    <span class="customerID" style="display: none">'.$cus_ID.'</span>                
                ';

This would be the jQuery-code

function checkCustomerInformation(){
    $(".db_records_wrapper").on('click', 'div.db_record', function (){
        const CustID = $(this).siblings(".customerID").text();
        console.log(CustID);
    });
}
1 Answers

siblings() gets every matching sibling element. To get only the only following the .db_record which was clicked, use next():

$(this).next(".customerID").text();

Here's a working example:

function checkCustomerInformation() {
  $(".db_records_wrapper").on('click', 'div.db_record', function() {
    const custID = $(this).next(".customerID").text();
    console.log(custID );
  });
}

checkCustomerInformation();
.db_record {
  margin: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div class="db_records_wrapper">
  <div class="db_record" id="potentialCustomer-'.$countPotentialCustomers.'">
    <div class="db_record_left">
      <div class="db_record_describer">$cus_Fname1 $cus_Lname1</div>
      <div class="db_record_info_wrapper">
        <div class="db_record_info_describer">Adresse:</div>
        <div class="db_record_info">$cus_Adress1</div>
        <div class="db_record_info">
          <span>$cus_ZipCode1</span>
          <span>$cus_Locality1</span>
        </div>
      </div>
      <div class="db_record_info_wrapper">
        <div class="db_record_info_describer">Fahrzeuge:</div>
        matchVehicles($cus_Vehicles1)
      </div>
    </div>
    <div class="db_record_right">
      <div class="material-icons md-large md-ghost-white-enabeld w-embed">
        <span class="material-icons-outlined">navigate_next</span>
      </div>
    </div>
  </div>
  <span class="customerID" style="display: none">$cus_ID1</span>

  <div class="db_record" id="potentialCustomer-'.$countPotentialCustomers.'">
    <div class="db_record_left">
      <div class="db_record_describer">$cus_Fname2 $cus_Lname2</div>
      <div class="db_record_info_wrapper">
        <div class="db_record_info_describer">Adresse:</div>
        <div class="db_record_info">$cus_Adress2</div>
        <div class="db_record_info">
          <span>$cus_ZipCode2</span>
          <span>$cus_Locality2</span>
        </div>
      </div>
      <div class="db_record_info_wrapper">
        <div class="db_record_info_describer">Fahrzeuge:</div>
        matchVehicles($cus_Vehicles2)
      </div>
    </div>
    <div class="db_record_right">
      <div class="material-icons md-large md-ghost-white-enabeld w-embed">
        <span class="material-icons-outlined">navigate_next</span>
      </div>
    </div>
  </div>
  <span class="customerID" style="display: none">$cus_ID2</span>
</div>

Related