Waka hadysynyň ýokarlanmagynda niýetlenen elementleri almak

Bizde iki element bolsun: div we şu div-iň içinde ýatan abzas p:

html<div>
  <p></p>
</div>

Div-iň çykgydyny üýtgeýjide alalyň:

javascriptlet div = document.querySelector('div');

Belliklerimize käbir stilleri goşalyň:

cssdiv {
  padding: 20px;
  border: 1px solid red;
}

p {
  width: 200px;
  height: 200px;
  border: 1px solid green;
}

Indi diňe üstünde çykyş işleýjisi bar:

javascriptdiv.addEventListener('click', function() {
  console.log('click');
});

Div-iň padding bolany üçin, biz div-i basanymyzda, biz abza degip bileris, ýa-da şol abzaň ýok ýerine degip bileris, ýagny diňe div-e.

Şeýle hem çykyş işleýjisinde this hemişe işleýjiň baglanan elementine görkezer. Bizim ýagdaýymyzda bu bizim div:

javascriptdiv.addEventListener('click', function() {
  console.log(this); // div
});

Emma, biz asyl bolup, hadysanyň ýüze çykan belligini alyp bileris. Bunuň üçin biz event.target-da näme ýatanyna seredip bileris:

javascriptdiv.addEventListener('click', function(event) {
  console.log(event.target); // ýa div, ýa abzas
});

Bu iki warianty şertler bilen tapawutlandyryp bolýar:

javascriptlet div = document.querySelector('div');

div.addEventListener('click', function(event) {
  if (event.target.tagName === 'DIV') {
    console.log('çykyş diňe div-de');
  }
  if (event.target.tagName === 'P') {
    console.log('çykyş diňe abzasda');
  }
});

tagName ornuna matches ulanyp bolýar:

javascriptlet div = document.querySelector('div');

div.addEventListener('click', function(event) {
  if (event.target.matches('div')) {
    console.log('çykyş diňe div-de');
  }
  if (event.target.matches('p')) {
    console.log('çykyş diňe abzasda');
  }
});
Задание 1

Aşakdaky elementler berlen:

html<div>
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
</div>
cssdiv, ul, li {
  padding: 20px;
}

div {
  border: 1px solid red;
}
ul {
  border: 1px solid orange;
}
li {
  border: 1px solid green;
}

Div-iň üstüne çykyş işleýjisini baglaň. Şu işleýjide, hadysanyň haýsy bellikde ýüze çykandygyny kesgitleň.

Задание 2

Öňki meseläni üýtgediň. Şeýle ediň li basylanda, onuň soňuna ünlem belgisi goşulsyn, ul basylanda bolsa konsolda bu barada maglumat çap edilsin.