Seletores complexos de elementos DOM em JavaScript

Vamos fazer algo mais complexo. Suponha, por exemplo, que temos o seguinte código HTML:

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

Vamos obter uma referência ao input que está dentro do bloco #parent:

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

Como você pode ver, obtivemos nosso input pelo seletor #parent input. Na verdade, este seletor CSS seleciona todos os inputs que estão dentro de #parent.

Suponha, por exemplo, que temos dois desses inputs:

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

Então, se escrevermos o seletor #parent input no código CSS, ele afetará ambos os nossos inputs:

css#parent input {
  color: red;
}

O método querySelector, no entanto, funciona de maneira diferente. Ele sempre obtém apenas um elemento - o primeiro que corresponde ao seletor especificado. Vamos ver um exemplo. Suponha que temos inputs com a classe elem:

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

Vamos obter o primeiro desses inputs:

javascriptlet elem = document.querySelector('.elem');
console.log(elem); // aqui será o primeiro input
Задание 1

Dado o seguinte HTML:

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

Obtenha uma referência ao primeiro parágrafo dentro da div com id igual a block.

Задание 2

Dado o seguinte HTML:

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

Obtenha uma referência ao primeiro parágrafo dentro da div com a classe block.

Задание 3

Dado o seguinte HTML:

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

Obtenha uma referência ao primeiro parágrafo com a classe www.