Attributs
Certaines méthodes et propriétés permettent de récupérer les attributs des balises et de les modifier.

Méthode : setAttribute : écriture
element.setAttribute(attribute,value);
// ou
element.attribute = value;
Permet de modifier le contenu d'un attribut.
HTML
<input type="checkbox" id="input1" />
<label>Suvolez moi pour me changer en radio</label>
JavaScript
document.querySelector('#input1 + label').addEventListener('mouseover' , () => {
document.querySelector('#input1').setAttribute('type', 'radio');
})
Survolez le label
Le type checkbox de l'input est modifié en radio.
Méthode : getAttribute : lecture
element.getAttribute(attribute);
// ou
element.attribute;
Permet de récupérer le contenu d'un attribut.
HTML
<img src='../res/javascript.png' id='image1' />
<p></p>
JavaScript
const image1 = document.querySelector('#image1');
const texte = document.querySelector('#image1 + p');
image1.addEventListener('mouseover' , function() {
texte.textContent = this.getAttribute('src');
});
image1.addEventListener('mouseout' , function() {
texte.textContent = "Survolez l'image pour voir l'url";
});
Survolez l'image

Au survol de l'image le contenu de son attribut src est copié dans le contenu texte du paragraphe.
Méthode : removeAttribute
element.removeAttribute(attribute);
Permet de supprimer un attribut.
HTML
<input type="checkbox" id="input2" value='Champ de saisie'/>
<label>Suvolez moi pour me changer en type text</label>
JavaScript
document.querySelector('#input2 + label').addEventListener('mouseover' , function() {
document.querySelector('#input2').removeAttribute('type');
})
Survolez le label
Au survol du label, l'attribut type de la baise <input> est supprimé. Le champ devient un champ de saisie.
Définition : className : lecture, écriture
element.className = value;
// ou
element.setAttribute('class',value);
Permet de modifier ou lire l'attribut class d'un élément.
le mot clef class étant réservé la propriété class est remplacée par className.
HTML
<img src='../res/javascript.png' id='image2' />
CSS
.maClasse {
border: 2px solid red;
border-radius: 100px;
width: 200px;
}
JavaScript
document.querySelector('#image2').addEventListener('mouseover' , function() {
this.className = 'maClasse';
})
Survolez l'image

Ajoute la classe maClasse au survole de l'image.
Définition : classList
classList retourne la liste des classes d'un élément sous forme d'un objet DOMTokenList

element.classList.add(nomClasse); // Ajoute une classe à l'élément
element.classList.remove(nomClasse); // Supprime une classe à l'élément
element.classList.toggles(nomClasse); // Ajoute ou supprime une classe en fonction de son existence
element.classList.contains(nomClasse); // retourne un booléen indiquant l'existence de la classe
HTML
<img src='../res/javascript.png' id='image3' />
CSS
.maClasse {
border: 2px solid red;
border-radius: 100px;
width: 200px;
}
JavaScript
document.querySelector('#image3').addEventListener('mouseover' , function() {
this.classList.toggle('maClasse');
})
Survolez plusieurs fois l'image

Ajoute ou enlève la classe maClasse au survole de l'image.
Attention :
Utiliser getAttribute ou la propriété n'est pas complétement équivalent.
Dans certain cas on aura par exemple la valeur null pour l'un et la valeur "" pour l'autre.
Une URL relative pour l'un et une URL absolue pour l'autre.
const a = document.querySelector('a');
a.href // "fichier.html"
a.getAttribute('href') // "http://.../fichier.html"
a.name // ""
a.getAttribute('name') // null
HTML
<img src='../res/javascript.png' id='image4' />
<p></p>
<p></p>
JavaScript
const image4 = document.querySelector('#image4');
const texte1 = document.querySelector('#image4 + p');
const texte2 = document.querySelector('#image4 + p + p');
image4.addEventListener('mouseover' , function() {
texte1.textContent = "getAttribute = " + this.getAttribute('src');
texte2.textContent = " src = " + this.src;
})
Survolez l'image
