Komplexa DOM-elementväljare i JavaScript

Låt oss göra något mer komplext. Låt oss till exempel säga att vi har följande HTML-kod:

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

Låt oss få en referens till inputfältet som finns inuti blocket #parent:

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

Som du ser fick vi vårt inputfält med väljaren #parent input. Faktum är att denna CSS-väljare matchar alla inputfält som finns i #parent.

Låt oss säga att vi har två sådana inputfält:

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

Då, om man skriver väljaren #parent input i CSS-koden, kommer den att påverka båda våra inputfält:

css#parent input {
  color: red;
}

Metoden querySelector fungerar dock inte på samma sätt. Den hämtar alltid bara ett element - det första som matchar den angivna väljaren. Låt oss titta på ett exempel. Låt oss säga att vi har inputfält med klassen elem:

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

Låt oss få den första av dessa inputfält:

javascriptlet elem = document.querySelector('.elem');
console.log(elem); // här kommer det första inputfältet att vara
Задание 1

Följande HTML ges:

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

Skaffa en referens till det första stycket från div:en med id lika med block.

Задание 2

Följande HTML ges:

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

Skaffa en referens till det första stycket från div:en med klassen block.

Задание 3

Följande HTML ges:

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

Skaffa en referens till det första stycket med klassen www.