11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Voila j'ai tenté de crée une function qui ajouterai une classe sur les td de mes tableaux.
le but est qu'elle ajoute une class si le td est vide ou non ayant plusieurs tableaux sur plusieurs pages différente j'ai voulue utilisé foreach. Le problème est que je n'arrive pas à faire fonctionner ma function.
     
 document.querySelectorAll('.table-responsive').forEach(function (line) {
let donne = []
    line.querySelectorAll('td').forEach(function (td,){
     line.push(td.innerText)
})

if (donne.value.length == 0){
            td.classList.add('Dnone')
        }
        else { td.classList.add('class', 'Dblock')}
    }
      })

si quelqu'un à une idée de pourquoi le fonction ne marche pas je suis plus que preneur.
voila un lien code pencodepen.io/snotra/pen/yLJrLxY
Modifié par snotra (17 Nov 2020 - 14:53)
Modérateur
Bonjour,

Si l'on suppose qu'un td vide contient éventuellement des espaces, tabulations ou encore des retours à la ligne, ceci devrait fonctionner :
document.querySelectorAll(".table-responsive td").forEach(function (line) {
  if (line.innerHTML.match(/^\s*$/)) {
    line.classList.add("Dnone");
  } else {
    line.classList.add("Dblock");
  }
});

Amicalement,
Meilleure solution
Bonjour merci pour la réponse. je vais décortiquer ta fonction pour comprendre comme elle marche maintenant.
Modifié par snotra (17 Nov 2020 - 15:44)