CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Erreur courante en javascript

Beuil
Beuil
Niveau 5
22 octobre 2015 à 18:09:24

Salut !
cette erreur m'arrive souvent regardez

var position = document.getElementsByClassName("voiture");
    position.style.top -= "20px";

perso j'ai une belle erreur
undefined is not an object (evaluating 'position.style.top')

comment ça se fait ?

merci

Darkandgel
Darkandgel
Niveau 10
22 octobre 2015 à 18:13:38

position ou position.style est undefined

TintinMage
TintinMage
Niveau 10
22 octobre 2015 à 19:04:19

getElementsByClassName retourne un NodeList (d'où le s dans getElementS)
position.style.top est undefined parce que y'a pas d'attribut "style" dans une NodeList
Ce que tu veux faire c'est accéder au node pour pouvoir changer ses attributs, donc puisque position est un NodeList suffit de faire position[i]
position[0].style.top // pour changer le node en position 0

Message édité le 22 octobre 2015 à 19:04:51 par TintinMage
Beuil
Beuil
Niveau 5
22 octobre 2015 à 20:56:39

Le 22 octobre 2015 à 19:04:19 TintinMage a écrit :
getElementsByClassName retourne un NodeList (d'où le s dans getElementS)
position.style.top est undefined parce que y'a pas d'attribut "style" dans une NodeList
Ce que tu veux faire c'est accéder au node pour pouvoir changer ses attributs, donc puisque position est un NodeList suffit de faire position[i]
position[0].style.top // pour changer le node en position 0

Merci beaucoup !

parcontre, j'ai une autre question

pourquoi là il se passe rien ?

	
var position = document.getElementsByClassName("voiture")[0];
position.style.left = parseInt(position.style.left, 10) + 30 + "px";

alors que là, ça fonctionne ?

	
var position = document.getElementsByClassName("voiture")[0];
	position.style.left = "30px";

Moi, je veux absolument pouvoir incrémenter la valeur existante de 30px

TintinMage
TintinMage
Niveau 10
22 octobre 2015 à 21:42:29

position.style.left peut être vide, donc faut ajouter une condition

Beuil
Beuil
Niveau 5
22 octobre 2015 à 22:01:47

Le 22 octobre 2015 à 21:42:29 TintinMage a écrit :
position.style.left peut être vide, donc faut ajouter une condition

Ok mais dans mon code CSS y'a ça:

.voiture {
	background: red;
	top:20px;
	left:20px;
	width:30px;
	height: 30px;
	position: absolute;

}
TintinMage
TintinMage
Niveau 10
22 octobre 2015 à 22:28:28

Je viens de toast, apparemment javascript ne va pas chercher les valeurs dans le css pour l'attribut style, ça ne prend considération que les styles au niveau du node <div style="left: 20px; top: 30px">

Message édité le 22 octobre 2015 à 22:28:57 par TintinMage
Beuil
Beuil
Niveau 5
23 octobre 2015 à 11:03:04

En tout cas Merci Beaucoup pour l'aide ! ça fonctionne !

Grimmys
Grimmys
Niveau 19
23 octobre 2015 à 11:58:09

J'avais pensé que c'était l'absence de conversion en string qui posait problème perso. :(

deepblue
deepblue
Niveau 16
23 octobre 2015 à 17:44:25

Tu veux récupérer le computed style en fait : https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment