10617 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je suis débutant en Javascript et je cherche à appliquer un style au <html> et au <body>. J’ai donc essayé d’utiliser un querySelectorAll(":root, body").
Au premier abord, tout semble bon?:
upload/1562855861-61037-query1.png
Également quand je le mets dans une alert
upload/1562855909-61037-query2.png
Sauf qu’au moment d’appliquer le style...
upload/1562855971-61037-query3.png
Je précise que je n’ai pas modifié le sélecteur entre temps. La console me renvoie aussi «undefined».
Avez-vous une idée de comment régler ce problème ?
Merci d’avance.
Bonjour, querySelectorAll renvoie une liste (NodeList) qui n'a pas d'attribut style, il faut ensuite boucler sur les éléments de la liste pour attibuer le style.

Dans ce cas, comme tu n'a besoin de cibler qu'un seul élément (body), utilises plutôt querySelector, voici une solution plus simple:


document.querySelector('body').style.background = 'red';

Modifié par kustolovic (11 Jul 2019 - 16:56)
Salut,
Merci pour la réponse rapide,
En clair, je dois dupliquer l’instruction de style autant de fois que j’ai de sélecteur ?
Non, si ton sélecteur cible plusieurs éléments tu peux utiliser querySelectorAll, mais il faut boucler dessus:


var strongs = document.querySelectorAll('strong');
for (var i = 0; i < strongs.length; i++) {
  strongs[i].style.color = 'green';
}
Meilleure solution
Ok super merci !
Ça me sera utile pour la suite, mais pour le moment, je ne suis pas prêt de trouver plusieurs <body> dans mon document !
Bonne journée
Bonjour Duchampignon,
Juste pour information :
Pour atteindre le body en javascript
document.body
Pour atteindre le HTML en javascript
document.documentElement
aliasdmc a écrit :
Bonjour Duchampignon,
Juste pour information :
Pour atteindre le body en javascript
document.body
Pour atteindre le HTML en javascript
document.documentElement

Merci ! Ça va m’alléger quelques codes ça.