Java Script
< DOM >
Sommaire :
Avant de parler du DOM, parlons d'abord du navigateur
Anatomie de Chrome


moteur de rendu
Blink

moteur de rendu
V8 - (interpréteur)
Comment Chrome affiche une page web ?


Comment Chrome affiche une page web ?


Comment Chrome affiche une page web ?

DOM

DOM
Document Object Model
Le document ici est notre index.html.
Le DOM est une API (Application Programming Interfaces) qui est fourni par le navigateur.
Le DOM est une représentation des éléments HTML qui composent notre page web sous la forme d'un objet JS.
Comment Chrome affiche une page web ?

DOM


CSSOM

CSSOM
Le CSSOM signifie :
CSS Object Model
Le CSSOM est la représentation du contenu de la feuille de style sous la forme d'un objet JS.
Comment Chrome affiche une page web ?

DOM


CSSOM

Comment Chrome affiche une page web ?

DOM


CSSOM



Comment Chrome affiche une page web ?

DOM

CSSOM
Pour afficher graphiquement notre site internet, ces deux éléments vont être combinés dans un arbre d'affichage.
Ce dernier va nous permettre de créer le rendu du site internet et de venir "peindre" les pixels.
arbre
d'affichage

Que contient le DOM ?
Du statique au dynamique !
Nous allons nous servir de notre script afin de modifier le DOM et CSSDOM via le moteur JS, qui lui a accès à ces deux éléments.

DOM

CSSOM



Comment modifier le DOM ?

DOM


//variable globale
documentDémo
document.querySelector('h1').innerHTML = 'Mon nouveau titre';

Sélectionner un élément
Les méthodes
querySelector()
et
querySelectorAll()
Ces méthodes vont nous permettre d’accéder à des éléments HTML correspondant à un certain sélecteur CSS, que ce soit un id, une class, un type d’élément, un attribut ou autre.
Ces deux méthodes vont donc prendre un sélecteur CSS en argument. On peut évidemment préciser une suite de sélecteurs pour cibler un élément précis.
querySelector() va renvoyer des informations relatives au premier élément trouvé correspondant au sélecteur CSS sélectionné.
<body>
<h1>Le titre</h1>
</body>console.log(document.querySelector('h1'));sélectionner dans la console la list-item "salade" sans changer le HTML.
<body>
<ol class="courses">
<li class="produit">salade</li>
<li class="produit">tomates</li>
<li class="produit">oignons</li>
</ol>
</body>Exo
résultat
var produit = document.querySelector('.courses li:nth-child(2)');
console.log(produit);Pour la lisibilité, nous pouvons stocker notre élément dans une variable.
querySelectorAll() va renvoyer des informations sur tous les éléments correspondants.
<body>
<p class="para">Lorem ipsum dolor sit amet.</p>
<p class="para">Lorem ipsum dolor sit amet.</p>
<p class="para">Lorem ipsum dolor sit amet.</p>
</body>console.log(document.querySelectorAll('.para'));sélectionner dans la console les list-item contenants la classe "produit".
<body>
<ol class="courses">
<li class="produit">salade</li>
<li class="produit">tomates</li>
<li class="produit">oignons</li>
<li>chef</li>
</ol>
</body>Exo
résultat
var item = document.querySelectorAll('.produit');
console.log(item);Pour la lisibilité, nous pouvons stocker notre élément dans une variable.
Modifier un élément
Nous allons pouvoir modifier les éléments HTML via des propriétés JS ou bien en appelant des sélecteurs CSS.
La propriété textContent va nous permettre de modifier le contenu d'un texte.
La première étape est de sélectionner un élément et de le stocker dans une variable.
var titre = document.querySelector('#titre');La deuxième étape est de lui assigner la propriété textContent et de changer le contenu de notre élément.
titre.textContent = 'Mon nouveau titre';Nous allons pouvoir modifier le style des éléments en leur ajoutant des classes CSS ou via des propriétés JS.
<p class="para">Lorem ipsum dolor sit amet.</p>.vert {
background: lightgreen;
}var p = document.querySelector('.para');
p.classList.add('vert');Nous avons ajouter la méthode add à la propriété classList afin d'ajouter cette classe.
Pas de (.) avant la classe car on l'écrit comme si on l'ajoutait dans le HTML.
var p = document.querySelector('.para');
p.style.fontSize = '40px';Nous pouvons modifier nos éléments via la propriété style à laquelle, nous allons pouvoir assigner toutes les propriétés CSS existantes.
Ici, nous assignons la propriété fontSize à notre paragraphe.
Dans ton drive ;)
Exo
Java Script <DOM>
By Jonathan Blanc
Java Script <DOM>
- 164