Skip to content

Instantly share code, notes, and snippets.

@eveningkid
Created April 9, 2020 17:00
Show Gist options
  • Save eveningkid/1c865216dbd4ffd6255a99efd02b8749 to your computer and use it in GitHub Desktop.
Save eveningkid/1c865216dbd4ffd6255a99efd02b8749 to your computer and use it in GitHub Desktop.
// -- Cibler des éléments
// Comment cibler des éléments principaux ?
const head = document.head;
const body = document.body;
// Comment cicler des éléments par balise/tag HTML ?
// <div>
// <p>...</p>
// <p>...</p>
// </div>
const paragraphs = document.getElementsByTagName('p');
// Comment cibler des éléments par ID ?
// <img src="..." id="my-image" />
const image = document.getElementById('my-image');
const slowImage = document.querySelector('#my-image');
// Comment cibler des éléments par classe CSS ?
// <img src="..." class="blue" />
// <p class="blue">...</p>
const blueTags = document.getElementsByClassName('blue');
const slowBlueTags = document.querySelectorAll('.blue');
// *Récap*
// Par balise HTML : document.getElementsByTagName(nomBalise)
// Par attribut id : document.getElementById(id)
// Par attribut class : document.getElementsByClassName(nomClasse)
// Par sélecteur CSS :
// - Elément unique : document.querySelector(selector)
// - Plusieurs éléments : document.querySelectorAll(selector)
// -- Changer les propriétés des éléments
// Comment changer la valeur d'un attribut d'un élément dynamiquement ?
const image = document.getElementById('my-image');
image.src = 'https://mywebsite.com/my-image.png';
image.style.border = '2px solid black';
image.anyAttribute = newAttributeValue;
// Et pour plusieurs éléments ? ...on utilise une boucle !
const images = document.getElementsByTagName('img');
for (const image of images) {
image.width = '300px';
}
// Equivalent à :
// for (let i = 0; i <= images.length; i++) {
// const image = images[i];
// image.width = '300px';
// }
// *Récap*
// - Pour un élément unique, il faut d'abord le cibler, puis changer la valeur
// de l'attribut via ses propriétés, par exemple element.style, element.src...
// - Pour plusieurs éléments, il faut les cibler en utilisant une méthode qui
// retourne une liste/un tableau d'éléments (getElementsByTagName, querySelectorAll),
// puis boucler sur cette liste, en les modifiant un par un
// -- Evénements
// Comment permettre à un élément *d'être à l'écoute* d'évènements ?
function onClickImage(event) {
// event.target fait référence à l'élément cliqué
event.target.style.borderColor = 'red';
}
document.getElementById('my-image').addEventListener('click', onClickImage);
// Et si je ne souhaite plus écouter cet événement ?
// NOTE: attention, vous devez passer la même référence de la fonction passée
// auprès d'addEventListener
document.getElementById('my-image').removeEventListener('click', onClickImage);
// *Récap*
// Être à l'écoute d'événements sur un élément :
// element.addEventListener(nomEvenement, callback)
// Arrêter d'écouter l'événement :
// element.removeEventListener(nomEvenement, callback)
// => callback doit correspondre à la même référence utilisée
// avec addEventListener
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment