Поиск соседей элементов в JavaScript

Дан элемент #elem:

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

Найдите его соседа сверху и добавьте ему в конец текст '!'.

Дан элемент #elem:

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

Найдите его соседа снизу и добавьте ему в конец текст '!'.

Дан элемент #elem:

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

Найдите его соседа снизу его соседа снизу (следующий элемент за соседним) и добавьте ему в конец текст '!'.

Дан элемент #elem:

<ul> <li>text1</li> <li>text2</li> <li id="elem">text3</li> <li>text4</li> <li>text5</li> </ul>

Поменяйте местами текст его соседа сверху и текст его соседа снизу.

enru