Monimutkaiset DOM-elementin valitsimet JavaScriptissä

Tehdään jotain monimutkaisempaa. Olkoon meillä esimerkiksi seuraava HTML-koodi:

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

Haetaan viite input-kenttään, joka sijaitsee #parent -lohkon sisällä:

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

Kuten näette, saimme input-kenttämme valitsimella #parent input. Itse asiassa tähän CSS-valitsimeen osuvat kaikki #parent:n sisällä olevat input-kentät.

Olkoon meillä esimerkiksi kaksi tällaista input-kenttää:

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

Jos kirjoitat CSS-koodiin valitsimen #parent input, se vaikuttaa molempiin input-kenttiimme:

css#parent input {
  color: red;
}

querySelector -metodi ei kuitenkaan toimi näin. Se hakee aina vain yhden elementin - ensimmäisen, joka vastaa määriteltyä valitsinta. Katsotaanpa esimerkkiä. Olkoon meillä input-kenttiä, joilla on luokka elem:

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

Haetaan ensimmäinen näistä input-kentistä:

javascriptlet elem = document.querySelector('.elem');
console.log(elem); // tässä on ensimmäinen input-kenttä
Задание 1

Annettu seuraava HTML:

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

Hae viite ensimmäiseen kappaleeseen div-elementistä, jolla on id, joka on block.

Задание 2

Annettu seuraava HTML:

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

Hae viite ensimmäiseen kappaleeseen div-elementistä, jolla on luokka block.

Задание 3

Annettu seuraava HTML:

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

Hae viite ensimmäiseen kappaleeseen, jolla on luokka www.