Imbrication conditions if + boucles for
Je monte en complexité, peut-être d'ailleurs un peu trop pour un non développeur :? ...
J'ai un publipostage de pages HTML, chaque body incluant une table1 qui elle-même inclue une ou plusieurs table(s)2.
J'ai besoin d'afficher (ou supprimer) certains body en fonction d'une condition dans la table1 et de deux conditions dans la table2.
J'arrive sans prble à gérer séparément table1/table2, mais pas à croiser...
J'avais commencé comme ça :
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
|
function Table() {
var
tableau1 = document.getElementsByClassName("table1");
tableau2 = document.getElementsByClassName("table2");
body = document.getElementsByClassName("body");
for(var i=0, j=0;i<tableau2.length, j<tableau1.length;i++, j++) {
tab2 = tableau2[i];
ville = tableau2[i].rows[3].cells[1];
situation = tableau2[i].rows[1].cells[1];
tab = tableau1[j];
site = tableau1[j].rows[1].cells[1];
bod = body[j];
if ((ville.innerHTML.trim()== "Arras") && (situation.innerHTML.trim() == "Disponible") && (site.innerHTML.trim() == Arras"))
{
bod.style.display='none';
}
else
{
bod.style.display='block';
}
}
}; |
qui ne donne rien...
Une autre ébauche pas bcp plus efficace (seule la condition sur la table1 est prise en compte, ça ne semble pas très logique du côté des if) :
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
|
function Tab() {
var
tableau2 = document.getElementsByClassName("table2");
tableau1 = document.getElementsByClassName("table1");
body = document.getElementsByClassName("body");
for(var i=0; i<tableau2.length; i++)
{
tab2 = tableau2[i];
ville = tableau2[i].rows[3].cells[1];
situation = tableau2[i].rows[1].cells[1];
if ((ville.innerHTML.trim()== "Arras") && (situation.innerHTML.trim() == "Disponible"))
{
for (var j=0; j<tableau1.length; j++)
{
tab = tableau1[j];
bod = body[j];
site = tableau1[j].rows[1].cells[1];
if (site.innerHTML.trim() == "Arras")
{
bod.style.display='none';
}
else
{
bod.style.display='block';
}
}
}
}
}; |
Merci d'avance pour tout coup de main !