Złożone selektory elementu DOM w JavaScript

Zróbmy coś bardziej skomplikowanego. Załóżmy na przykład, że mamy taki kod HTML:

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

Pobierzmy referencję do inputa znajdującego się wewnątrz bloku #parent:

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

Jak widzisz, otrzymaliśmy nasz input za pomocą selektora #parent input. W rzeczywistości ten selektor CSS pasuje do wszystkich inputów znajdujących się w #parent.

Załóżmy na przykład, że mamy dwa takie inputy:

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

Wtedy, jeśli napiszesz selektor #parent input w kodzie CSS, wpłynie on na oba nasze inputy:

css#parent input {
  color: red;
}

Metoda querySelector jednak działa inaczej. Zawsze pobiera tylko jeden element - pierwszy, który pasuje do podanego selektora. Spójrzmy na przykład. Załóżmy, że mamy inputy z klasą elem:

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

Pobierzmy pierwszy z tych inputów:

javascriptlet elem = document.querySelector('.elem');
console.log(elem); // tutaj będzie pierwszy input
Задание 1

Dany jest następujący HTML:

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

Uzyskaj referencję do pierwszego akapitu w divie z id równym block.

Задание 2

Dany jest następujący HTML:

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

Uzyskaj referencję do pierwszego akapitu w divie z klasą block.

Задание 3

Dany jest następujący HTML:

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

Uzyskaj referencję do pierwszego akapitu z klasą www.