Enregistrer un tableau en object en JavaScript
Bonjour à tous,
Alors voilà ma question. En fait, je cherche à transformer un tableau de note codé en HTML dans un objet JavaScript afin qu'il soit plus facile à manipuler, et plus précisément à remettre en page.
Voici le tableau :
HTML:
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 34 35 36 37 38 39 40 41 42 43 44
| <table class="table table-bordered bulletin">
<thead>
<tr>
<th>UE</th>
<th>Module</th>
<th>Matière</th>
<th>Evaluation</th>
<th class="coef">Coefficient</th>
<th class="resultat">Moyenne ou Note</th>
<th class="resultat">Moyenne<br/>Promo</th>
<th class="rang">Rang</th>
</tr>
</thead>
<tbody>
<tr class="ue">
<td colspan="4">UE 41 : Compléments en informatique</td>
<td class="coef">10</td>
<td class="resultat">13</td>
<td class="resultat">13,34</td>
<td class="rang">19</td>
</tr> <tr class="matiere">
<td colspan="2"></td>
<td colspan="2">M4101C-IPI : Administration système et réseau</td>
<td class="coef">1,50</td>
<td class="resultat">13</td>
<td class="resultat">13,34</td>
<td class="rang">19</td>
</tr> <tr class="evaluation">
<td colspan="3"></td>
<td>19/02/2015 : contrôle </td>
<td class="coef">1</td>
<td class="resultat">13</td>
<td class="resultat">13,34</td>
<td class="rang">19</td>
</tr>
<tr class="general">
<td colspan="4">Moyenne générale</td>
<td> </td>
<td class="resultat">13</td>
<td class="resultat">10,37</td>
<td class="rang">28</td>
</tr></tbody>
</table> |
Ce que je voudrais faire en fait, c'est par exemple faire un objet qui aurait une tête du genre objet[ue][matiere][evaluation]. Le but à terme, serait de transformer cet objet en JSON pour pouvoir le parser facilement. Je précise bien que je ne peux utiliser que JavaScript, car je me sers de Cordova pour développer une application Android.
Je vous remercie bien chaleureusement par avance :)
Pas top mais bon j'aurais essayé
Salut une petite esquisse pour le reste je te laisse faire, pas sure que ça te convient :(.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
var json = [];
$('table tbody tr').each(function(){
switch($(this).attr('class')){
case 'ue' :
json['ue'] = ($(this));
break;
case 'matiere' :
json['ue']['matiere'] = $(this);
break;
case 'evaluation' :
json['ue']['matiere']['evaluation'] = $(this);
break;
}
});
console.log(json) // pour l'object
console.log(JSON.stringify(json.eu)) //pour ton object stringifier json ;) |
Vite fait pas testé mode oldschool ;)
Salut, voici un petit exemple non testé a adapté selon tes besoins...
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
|
var json = [];
var obj = document.getElementsByTagName('tr');
for(i in obj){
if((typeof(obj[i]) === "object") && (obj[i].getAttribute('class') !== null)){
switch(obj[i].getAttribute('class')){
case 'ue' :
json['ue'] = obj[i];
break;
case 'matiere' :
json['ue']['matiere'] = obj[i];
break;
case 'evaluation' :
json['ue']['matiere']['evaluation'] = obj[i];
break;
}
}
}
console.log(JSON.stringify(obj))
console.log(json) |
EDIT:
Pour l'iframe il faut que tu soit sur le même domaine a moins d'un CORS ou passé par une API Rest pour ce qui concerne le cross domain.
Si tu maitrise JS dans ce cas pense seulement au PARENT exprimé par TOP qui est au dessus de toutes les autres c'est elle la Chef d'orchestre frameset en général.
Partons sur l'exemple que ta frame principale frameset contient 2 frames : Frame1 et Frame2.
Frame1
Code:
1 2 3
|
top.Frame2.ma_function_action(); //ici on appel ma_function_action() qui est dans Frame2
parent.document.ma_function_action1(); // "" "" "" "" "" Frameset (principale) |
Frame2
Code:
1 2 3
|
top.Frame1.ma_function_action3(); //ici on appel ma_function_action3() qui est dans Frame1
parent.document.ma_function_action1(); // "" "" "" "" "" Frameset (principale) |
grosso modo...
gl