Manipulation du DOM en JavaScript

Soit le fichier HTML :

CTRL+C pour copier, CTRL+V pour coller
1
<html>
2
<head>
3
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
<title>Mon titre</title>
5
<script type="text/javascript" src="lib.js"></script>
6
</head>
7
<body>
8
<h1 onClick="showHxContent(1)">Partie 1</h1>
9
<div id="title1" style="display:none">
10
<p>Mon premier paragraphe</p>
11
<p>Mon second paragraphe</p>
12
</div>
13
<h1 onClick="showHxContent(2)">Partie 2</h1>
14
<div id="title2" style="display:none">
15
<p>Mon premier paragraphe</p>
16
<p>Mon second paragraphe</p>
17
</div>
18
<p>
19
<input type="submit" value="Masquer" onClick="hideAllDivs()"/>
20
</p>
21
<p>
22
Titre n°: <input type="text" id="title"/>
23
<input type="submit" value="Afficher" onClick="alertTitle()"/>
24
</p>
25
</body>
26
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mon titre</title>
<script type="text/javascript" src="lib.js"></script>
</head>
<body>
<h1 onClick="showHxContent(1)">Partie 1</h1>
<div id="title1" style="display:none">
<p>Mon premier paragraphe</p>
<p>Mon second paragraphe</p>
</div>
<h1 onClick="showHxContent(2)">Partie 2</h1>
<div id="title2" style="display:none">
<p>Mon premier paragraphe</p>
<p>Mon second paragraphe</p>
</div>
<p>
<input type="submit" value="Masquer" onClick="hideAllDivs()"/>
</p>
<p>
Titre n°: <input type="text" id="title"/>
<input type="submit" value="Afficher" onClick="alertTitle()"/>
</p>
</body>
</html>

Question

Écrire la fonction JavaScript showHxContent permettant d'afficher le contenu du div correspondant au titre sur lequel on clique.

Question

Écrire la fonction JavaScript hideAllDivs permettant de masquer le contenu de tous les div du document.

Question

Écrire la fonction alertTitle permettant d'afficher (avec la fonction JavaScript alert) le contenu du énième titre, défini par le champ de saisie title.

Question

Écrire la fonction deleteTitle permettant d'effacer le contenu du titre défini par le champ title. (suppression du nœud fils de type texte)

Question

Écrire la fonction defineTitle permettant d'affecter le contenu du titre défini par le champ title avec la valeur "Nouveau titre". On testera que le titre a ou non déjà une valeur (nœud texte) avant l'ajout, afin de la supprimer si besoin.