Utiliser son code plusieurs fois pour différents attributs data?
Résolu/Fermé
A voir également:
- Utiliser son code plusieurs fois pour différents attributs data?
- App data - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code blocks free - Télécharger - Langages
2 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
3 déc. 2019 à 18:22
3 déc. 2019 à 18:22
Bonjour,
Pourquoi utiliser les data-attributes dans tes selecteurs... alors que les class semblent suffire ?
Pourquoi utiliser les data-attributes dans tes selecteurs... alors que les class semblent suffire ?
Voici la soution pour les personnes que ça pourrait aider:
HTML:
<tr>
<td>Cours 1</td>
<td><input data-eleve="A" data-cours="1" /></td>
<td><input data-eleve="B" data-cours="1" /></td>
<td><input data-eleve="C" data-cours="1" /></td>
<td><span data-cours="1">0</span></td>
</tr>
<tr>
<td>Cours 2</td>
<td><input data-eleve="A" data-cours="2" /></td>
<td><input data-eleve="B" data-cours="2" /></td>
<td><input data-eleve="C" data-cours="2" /></td>
<td><span data-cours="2">0</span></td>
</tr>
<tr>
<td></td>
<td><span data-eleve="A">0</span></td>
<td><span data-eleve="B">0</span></td>
<td><span data-eleve="C">0</span></td>
</tr>
SCRIPT:
function calculateValues() {
["eleve", "cours"].forEach(x => {
$("span[data-" + x + "]").each((i, eleve) => {
let ind = $(eleve).data(x);
let total = 0;
$("input[data-" + x + "='" + ind + "']").each((n, note) => {
total += parseFloat($(note).val());
});
$(eleve).html(total);
});
})
}
$("input").change(calculateValues);
HTML:
<tr>
<td>Cours 1</td>
<td><input data-eleve="A" data-cours="1" /></td>
<td><input data-eleve="B" data-cours="1" /></td>
<td><input data-eleve="C" data-cours="1" /></td>
<td><span data-cours="1">0</span></td>
</tr>
<tr>
<td>Cours 2</td>
<td><input data-eleve="A" data-cours="2" /></td>
<td><input data-eleve="B" data-cours="2" /></td>
<td><input data-eleve="C" data-cours="2" /></td>
<td><span data-cours="2">0</span></td>
</tr>
<tr>
<td></td>
<td><span data-eleve="A">0</span></td>
<td><span data-eleve="B">0</span></td>
<td><span data-eleve="C">0</span></td>
</tr>
SCRIPT:
function calculateValues() {
["eleve", "cours"].forEach(x => {
$("span[data-" + x + "]").each((i, eleve) => {
let ind = $(eleve).data(x);
let total = 0;
$("input[data-" + x + "='" + ind + "']").each((n, note) => {
total += parseFloat($(note).val());
});
$(eleve).html(total);
});
})
}
$("input").change(calculateValues);
3 déc. 2019 à 18:53