DOM элементінің күрделі селекторлары JavaScript-те

Келіңіздер, біраз күрделірек нәрсе жасайық. Мысалы, бізде мынадай HTML коды бар делік:

html<div id="parent">
  <input>
</div>

Келіңіздер, <#parent блогының ішіндегі input-қа сілтеме алайық:

javascriptlet elem = document.querySelector('#parent input');
console.log(elem);

Көріп отырғаныңыздай, біз input-ты <#parent input селекторы бойынша алдық. Шын мәнінде, бұл CSS селекторы <#parent ішінде орналасқан барлық input-тарға тиесілі болады.

Мысалы, бізде екі осындай input бар делік:

html<div id="parent">
  <input value="1">
  <input value="2">
</div>

Онда егер <#parent input селекторын CSS кодында жазсақ, ол біздің екі input-ымызға да әсер етеді:

css#parent input {
  color: red;
}

Алайда, <querySelector> әдісі басқаша жұмыс істейді. Ол әрқашан тек бір элементті - көрсетілген селекторға түскен біріншісін ғана алады. Мысалға қарайық. Бізде <elem класы бар input-тар бар делік:

html<input class="elem">
<input class="elem">

Келіңіздер, осы input-тардың біріншісін алайық:

javascriptlet elem = document.querySelector('.elem');
console.log(elem); // мұнда бірінші input болады
Задание 1

Мына HTML берілген:

html<div id="block">
  <p>1</p>
  <p>2</p>
</div>

<id-і <block>-ке тең div-тен бірінші абзацқа сілтеме алыңыз.

Задание 2

Мына HTML берілген:

html<div class="block">
  <p>1</p>
  <p>2</p>
</div>

<block> класы бар div-тен бірінші абзацқа сілтеме алыңыз.

Задание 3

Мына HTML берілген:

html<p class="www">text</p>
<p class="www">text</p>

<www> класы бар бірінші абзацқа сілтеме алыңыз.