Faire une boucle dans une boucle
Bonjour,
J'ai des containers et dedans des details
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <div class="container card sensor-{{ se.id_sensor}}" data-idsensor="{{ se.id_sensor}}">>
<img src="{% static 'images/graph.png' %}" class="card-img-top" alt="...">
<div class="container-sensor">
<canvas id="sensor-{{ se.id_sensor}}" class="canvas"></canvas>
</div>
<div class="card-body">
<h5 class="card-title">{{ se.sensor_longname }} [{{ se.sensor_types_id_sensor_type.measure_unit }}]</h5>
<p class="card-text">
Station: ({{ se.stations_id_station.id_station }}) {{ se.stations_id_station.station_longname }}</p>
<p class="card-text">
Sensors ID: {{ se.id_sensor}}<br>
Type: {{ se.chart_style_id_chart_style.chart_style_name }}<br>
Actif: {{ se.sensor_active }}<br>
Créé le: {{ se.sensor_created }}<br>
Couleur: {{ se.chart_backgroundColor_id_chart_backgroundColor.colors_id_colors.color_name }} (VALUE: {{ se.chart_backgroundColor_id_chart_backgroundColor.colors_id_colors.color_value }})<br>
<details>
<table class="data">
<tr>
<th>Date</th><th>Value</th>
</tr>
{% for d in se.datas %}
<tr data-x="{{ d.measure_created }}" data-y="{{ d.value }}"><td class="data-x"><time>{{ d.measure_created }}</time></td><td class="data-y">{{ d.value }}</td></tr>
{% endfor %}
</table>
</details>
</p>
</div>
</div> |
J'arrive looper les container ainsi (note: il y a plusieurs < div class="container" >)
Code:
$('#charts .container').each(function(){})
mais je dois encore looper la balise details ( ou la table avec la class data) pour récupérer les valeurs de data-x et data-y
J'ai essayé ceci sans succès
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $('#charts .container').each(function(){
console.log("Sensor: ",$(this).attr('data-idsensor'));
sensors.push({
'id_sensor':$(this).attr('data-idsensor')
});
$currentStation = $(this);
console.log($currentStation);
$currentStation.find('.data tr').each(function(){
console.log("\tx: ",$(this).attr('data-x'));
console.log("\ty: ",$(this).attr('data-y'));
});
}) |
à la place de
Code:
$currentStation.find('.data tr').each(function(){
j'avais aussi essayé, sans succès
Code:
$currentStation.closest('.data').not(':first').each(function(){})
car, aussi, je ne suis pas intéressé par le premier li du tableau.
Je pense ne pas être très loin, mais comment puis-je faire de manière propre et optimale?
Merci et bonne soirée