Encontrando elementos descendentes em JavaScript

firstElementChildlastElementChildchildren
Задание 1

Dado o elemento #elem:

html<ul id="elem">
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

Encontre o primeiro descendente deste elemento e torne o texto dele vermelho.

Задание 2

Dado o elemento #elem:

html<ul id="elem">
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

Encontre o último descendente deste elemento e torne o texto dele vermelho.

Задание 3

Dado o elemento #elem:

html<ul id="elem">
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

Encontre todos os descendentes deste elemento e adicione o texto '!' ao final de cada um.