OVH Cloud OVH Cloud

Ligne d'un tableau visible ou non

8 réponses
Avatar
pyfux
Bonjour à tout les javascripteurs(euses) !

Je suis débutant en javascript et j'aimerais afficher/cacher la ligne
d'un tableau lors d'un click par exemple. Quel code javascript peut me
permettre de faire cela?

Merci pour vos lumières,
Pyfux

8 réponses

Avatar
ASM
pyfux wrote:
Bonjour à tout les javascripteurs(euses) !

Je suis débutant en javascript et j'aimerais afficher/cacher la ligne
d'un tableau lors d'un click par exemple. Quel code javascript peut me
permettre de faire cela?

Merci pour vos lumières,
Pyfux


<tr id="truc"><td>a</td><td<>b</td></tr>

onclick="document.getElementById('truc').style.display='none';"
onclick="document.getElementById('truc').style.display='block';"

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
pyfux
Merci pour ta réponse,

mais cela ne marche pas correctement sous Mozilla.
Le ligne disparait bien mais lorsque je la fait réapparaitre les 2
cellules de ma ligne se retrouve dans la première celule du tableau !

ASM wrote:
pyfux wrote:

Bonjour à tout les javascripteurs(euses) !

Je suis débutant en javascript et j'aimerais afficher/cacher la ligne
d'un tableau lors d'un click par exemple. Quel code javascript peut me
permettre de faire cela?

Merci pour vos lumières,
Pyfux



<tr id="truc"><td>a</td><td<>b</td></tr>

onclick="document.getElementById('truc').style.display='none';"
onclick="document.getElementById('truc').style.display='block';"



Source:

<HTML>
<HEAD><TITLE></TITLE></HEAD>

<SCRIPT TYPE="text/javascript">
function ShowMessage()
{
document.getElementById("ligne2").style.display='block';
}
function HideRow(idrow)
{
document.getElementById("ligne2").style.display='none';


}
</SCRIPT>

<BODY>
<TABLE WIDTH0% BORDER=1 CELLPADDING=3 CELLSPACING=0 >

<TR >
<TD COLSPAN=6 WIDTH0% class="sujet">
<P ALIGN=LEFT> sujet_titre</P>
</TD>
</TR>

<TR ONCLICK="ShowMessage()" >
<TD WIDTH=2%> 1 </TD>
<TD COLSPAN=5>Cliquez sur la ligne pour faire apparaitre le message</TD>
</TR>

<TR ID='ligne2' ONCLICK="HideRow('ligne2')" BGCOLOR='Green'>
<TD WIDTH=2%> 2 </TD>
<TD COLSPAN=5>Cliquez pour faire disparaitre la ligne</TD>
</TR>


</TABLE>
</BODY>
</HTML>


Avatar
YD
pyfux wrote:
Je suis débutant en javascript et j'aimerais afficher/cacher la ligne
d'un tableau lors d'un click par exemple. Quel code javascript peut me
permettre de faire cela?


<tr id="truc"><td>a</td><td<>b</td></tr>

onclick="document.getElementById('truc').style.display='none';"
onclick="document.getElementById('truc').style.display='block';"


Selon les standards, la propriété display d'un <tr> est table-row, et
pas block !

Ceci étant comme IE ne respecte pas les standards comme chacun sait,
il vaut mieux écrire :

onclick="document.getElementById('truc').style.display='none';"
onclick="document.getElementById('truc').style.display='';"

Ce qui remet la valeur auto (ou celle fixée par la feuille de style)
et Mozilla / Firefox ... seront contents.

--
Y.D.


Avatar
YD
Rapidité n'est pas mère de sureté et empressement ne vaut pas la lecture
d'un bon livre:


Certes...

dans mon cas, pour réafficher la ligne(<TR>) il faut mettre :
document.getElementById('truc').style.display='table-row';


Non, il faut le remettre dans l'état initial, c'est à dire :
document.getElementById('truc').style.display='';

Comme je l'ai dit dans mon précédent article, il vaut mieux
laisser le navigateur se dépatouiller avec ses valeurs par
défaut, à moins qu'on ne tienne à écrire que pour Mozilla,
Opera et Konqueror... ce qui serait plus simple mais
restreindrait son audience.

--
Y.D.

Avatar
ASM
pyfux wrote:
Rapidité n'est pas mère de sureté et empressement ne vaut pas la lecture
d'un bon livre:


Ben ... mon livre est de 99 et il n'a rien de tout çà.

Déjà pas mal que je fusse point trop loin de l'exactitude
donnée par ailleurs.

dans mon cas, pour réafficher la ligne(<TR>) il faut mettre :
document.getElementById('truc').style.display='table-row';

Encore merci pour l'aide


pas de quoi :-)

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
pyfux
Rapidité n'est pas mère de sureté et empressement ne vaut pas la lecture
d'un bon livre:

dans mon cas, pour réafficher la ligne(<TR>) il faut mettre :
document.getElementById('truc').style.display='table-row';

Encore merci pour l'aide

Pyfux

ASM wrote:
pyfux wrote:

Bonjour à tout les javascripteurs(euses) !

Je suis débutant en javascript et j'aimerais afficher/cacher la ligne
d'un tableau lors d'un click par exemple. Quel code javascript peut me
permettre de faire cela?

Merci pour vos lumières,
Pyfux



<tr id="truc"><td>a</td><td<>b</td></tr>

onclick="document.getElementById('truc').style.display='none';"
onclick="document.getElementById('truc').style.display='block';"




Avatar
pyfux
:

Rapidité n'est pas mère de sureté et empressement ne vaut pas la
lecture d'un bon livre:



Certes...

dans mon cas, pour réafficher la ligne(<TR>) il faut mettre :
document.getElementById('truc').style.display='table-row';



Non, il faut le remettre dans l'état initial, c'est à dire :
document.getElementById('truc').style.display='';


Merci pour l'astuce ! J'ai posté mon précédent mail avant d'avoir lu ta
réponse!

Comme je l'ai dit dans mon précédent article, il vaut mieux
laisser le navigateur se dépatouiller avec ses valeurs par
défaut, à moins qu'on ne tienne à écrire que pour Mozilla,
Opera et Konqueror... ce qui serait plus simple mais
restreindrait son audience.




Avatar
YD

Non, il faut le remettre dans l'état initial, c'est à dire :
document.getElementById('truc').style.display='';


Merci pour l'astuce !


Il ne s'agit pas d'une astuce ! Le croire c'est se tromper sur
le sens de l'objet style, propriété exposée par le DOM pour tous
les éléments.

Alors, petite mise au point :-)

Cet objet contient toutes les propriétés énoncées par l'attribut
style du HTML. Si cet attribut est omis, alors toutes les
propriétés de style (style.display, style.color,etc.) sont des
document.getElementById('truc').style.display='none';
le navigateur interprète cela comme si, dans le HTML, on avait
écrit <tr id="truc" style="display: none">.
Écrire par la suite :
document.getElementById('truc').style.display='';
revient à 'effacer' "display: none" de l'attribut HTML style.

Une erreur qui, me semble-t-il à la lecture des articles ici,
est fréquente est de croire que 'style' reflète tous les styles
appliqués à l'élément, y compris ceux donnés par la feuille de
style CSS et ceux mis par défaut par le navigateur. Je répète
la propriété style ne reflète que l'attribut style de l'élément
HTML.

--
Y.D.