Javascript

Js ile üst elemanlara ulaşmak | closest ve parent kullanımı

Js each döngüsü ile closest parent kullanımı

Closest Kullanımı

En yakın etiketi seçme ve bulma işlemi için kullanılır. Hedef aldığımız etiketin en yakınında bulunan elementi yakalayabilirsiniz.

Parent Kullanımı

Hedef aldığımız nesnenin bulunduğu üst elemanlarına ulaşmak için parent kullanılır. Örnek gerekirse iç içe yada üst üste birden fazla div etiketine ulaşmak için birden fazla parent kullanarak işleminizi gerçekleştirebilirsiniz.

Aşağıdaki örnekte input ve select alanlarının boş olanlarını each döngüsüyle kontrol eden bir kodlama içeriği mevcut. Özellik olarak bakıldığında görünümü aktif yada pasif olanları dikkate alarak kontrolü sağlıyor ayrıca iç içe karmaşık diyebileceğimiz üst elementleri de nasıl kapsadığını aşağıdaki örnekten bakabilirsiniz.

Canlı Demo

KAYNAK KODLAR İÇİN

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<style>
.divim {
    width: 600px;
    height: 400px;
    padding: 20px;
    background-color: #afd2d7;
    position: relative;
    margin: auto;
}
#goster {
  float:right;
 margin:0px;

}

</style>
</head>
<body>

<div class="divim">
<div>
  <div style="float:right;"><button class="tiklaGizle">Gizle</button>
  <button class="tiklaAc">Gizlileri Aç</button>
 </div>

<h3>Inputlar Ve Selectler</h3>
<input type="text" id="input1" class="inputKontrol"/><br><br>
<input type="text" id="input2" class="inputKontrol"/><br><br>
<select id="selectAdi" class="inputKontrol">
    <option selected value="-1">Lütfen Seçiniz</option>
    <option value="2">test 1</option>
    <option value="3">test 2</option>
</select>
  <br><br>
  <div class="acdivi" style="display:none;">
 <input type="text" id="input3" class="inputKontrol"/><br><br>
  <input type="text" id="input4" class="inputKontrol"/><br><br>
 <div id="parent-icin-ic-ice-Div">
   <div id="parent-icin-ic-ice-Div-2">
   <input type="text" id="input5" class="inputKontrol" />
   </div>
    </div>
  </div><br>
  <span id="goster"><b>Boş Olan Alanlar:</b><br> <div id="kayit"></div></span>
  <br><br><br>
  <button  onclick="calistir();">Çalıştır</button>
   <button  onclick="secilenleriTemizle();">Seçilenleri Temizle</button>
</div>
</div>



<script type="text/javascript">
$(".tiklaAc").on("click", function (){
  $(".acdivi").css('display', 'block');
});
$(".tiklaGizle").on("click", function (){
  $(".acdivi").css('display', 'none');
});
$("#kayit").html("");
function calistir() {

var aktifDiv="";
$(".inputKontrol").each(function (e) {
	var val=$(this).val();
	
console.log(val);
if(($(this).closest("div").css('display') !== 'none' && val.length < 1 || $(this).closest("div").css('display') !== 'none' && val=="-1")  &&  ($(this).parent('div').css('display') != 'none' && val.length < 1 || $(this).parent('div').css('display') != 'none' && val=="-1") && ($(this).parent('div').parent('div').parent('div').css('display') != 'none' && val.length < 1 || $(this).parent('div').css('display') !== 'none' && val=="-1")){   
  
aktifDiv=$(this).attr("id");
if(aktifDiv) { 
$("#kayit").append(aktifDiv + " ");
}

}
});

return aktifDiv;
};

function secilenleriTemizle(){
 $("#kayit").html("");
  
}

</script>

</body>

</html>

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu