Bonjour,

Je suis presque au bout de ce code mais je n'arrive pas à faire la somme d'une colonne en ignorant les cellules qui contiennent du texte

Ce que je fais

Mieux qu'un long discours :
https://www.w3schools.com/code/tryit.asp?filename=FG4QPDDF6PB1

La partie de code qui me pose problème est celle-là :

            [...trElement].splice(2).forEach( e => {
                let newValue = Math.round(parseFloat(e.dataset.for100) * value) / 100 || textContent
                e.textContent = newValue
                e.dataset.curValue = newValue
            })            
        }

Si je remplace textContent par 0, la somme de la colonne s'effectue

            [...trElement].splice(2).forEach( e => {
                let newValue = Math.round(parseFloat(e.dataset.for100) * value) / 100 || 0
                e.textContent = newValue
                e.dataset.curValue = newValue

Ce que je veux

Mon but est que le texte s'affiche dans la cellule, mais qu'il soit ignoré dans le calcul du total

Ce que j'obtiens

Il doit me manquer quelque chose peut-être dans la partie "updateTotal" du code, mais je n'arrive pas à trouver quoi ?
Merci si quelqu'un peut m'aider à me débloquer.

2 réponses


ginettebaldoche
Auteur
Réponse acceptée

Bonjour Pierrot01,
Merci pour ta réponse, je savais que NaN était Not a Number, mais du coup ça m'a fait réfléchir et j'ai fini par trouver :
J'ai remplacé le "textContent" par ma valeur par défaut :

let newValue = Math.round(parseFloat(e.dataset.for100) * value) / 100 || e.dataset.for100

Et là ça marche, le texte s'affiche et le calcul du total s'effectue !

Salut
une cellule qui contient du texte est IsNaN()
exemple :
var aa = "test"
var bb = 12.5
isNaN(aa) -> true
isNaN(bb) -> false

NaN = Not a Number