qcm-9: Composants
Qu'est-ce qu'un composant ?
- c'est le nom qu'on donne à tout programme JavaScript
- c'est le nom qu'on donne à tout div d'une page HTML
- c'est un module qui a été conçu pour être intégré par d'autres développeurs
- c'est une page web de documentation
Nous avons vu en cours que tout composant devait être conçu de manière à pouvoir être intégré plusieurs fois sur une même page.
Parmi ces stratégies de conception, laquelle ne permet PAS l'intégration multiple d'un composant:
- Faire en sorte que le composant s'applique sur des éléments groupés
- Demander à l'intégrateur d'appeler une fonction pour chaque intégration
- Demander à l'intégrateur de modifier le code source du composant
Soit le fichier HTML suivant:
<ul>
<li data-number="1">premier</li>
<li data-number="2">deuxième</li>
</ul>
Comment récupérer la valeur de l'attribut data-number
du deuxième élément <li>
?
- document.getElementById('2').data-number
- document.getElementsByTagName('li')[1].data-number
- document.getElementsByTagName('li').getAttribute('data-number')[1]
- document.getElementsByTagName('li')[1].getAttribute('data-number')
var lien = document.getElementById('mon-lien-a');
Comment changer le titre du lien <a>
(tel qu'il sera affiché à l'écran) référencé par la variable lien
?
-
lien.title = 'nouveau titre';
-
lien.innerHTML = 'nouveau titre';
-
lien.href = 'nouveau titre';
-
lien.setAttribute('title', 'nouveau titre');
Soit le code JS suivant:
// supposons que boutons référence un ensemble de boutons
for (var i = 0; i < boutons.length; i++) {
boutons[i].onclick = function() {
alert('vous avez cliqué sur le bouton nº' + i);
}
}
Que se passera-t-il quand on cliquera sur chaque bouton ?
- on verra l'alerte: "vous avez cliqué sur le bouton nºi"
- le numéro du bouton cliqué apparaitra dans un alert
- un numéro de bouton incorrect apparaitra dans un alert
- il ne se passera rien
Expliquez la raison du comportement observé à la question ci-dessus.
- il y a une erreur de syntaxe dans le code
- au moment du clic, la variable i vaudra boutons.length
- au moment du clic, la variable i vaudra 0
- la variable i n'est pas accessible dans le contexte de la fonction onclick
Quelle est la meilleure manière de résoudre le problème de la question ci-dessus ?
- il faut ralentir les itérations de la boucle
- il faut écrire une fonction onclick par bouton
- il faut passer la valeur de i en paramètre de notre fonction onclick
- il faut passer la valeur de i en paramètre d'une autre fonction, à chaque itération de la boucle