Partage
  • Partager sur Facebook
  • Partager sur Twitter

Explorer une table en utilisant le DOM

Sujet résolu
    8 juin 2010 à 11:05:51

    Je voudrais récupérer certaines valeurs de ma table, changer le style de certaines cellule dynamiquement en utilisant javascript.
    J'ai essayé d'utiliser les techniques document.getElementById. Si je fais cela sur une balise tr, j'obtiens bien Object tablerowelement, mais le innerHTML ne marche pas dessus. De même, si j'utitlise firstChild dessus, l'alert me renvoi null.
    Et si je fais :
    alert(gid(1).firstChild.firstChild);
    

    Je n'ai aucune réponse.
    Donc je me dis qu'il y a un vocabulaire spécifique pour les tables. J'ai cherché sur le site du zéro mais je ne vois rien. Sur internet, pour explorer les tables j'ai juste trouvé une méthode utilisant getElementsByTagName que je ne trouve pas pratique dans ma situation, donc si quelqu'un à un bon lien pour débutant ce serait génial.

    Voice ma table: (en vrai il n'y a aps d'espace entre les balises dans mon code pour éviter que ceux ci ne soitent détecter comme des textnodes).
    <tr id='1'>
    		<tr style='display: inline;'>
    			<td>
    				<input type='hidden' id='statut_1' name='statut' value='0'/>
    				<span class='NoVoice' style='display: inline;'>
    					<span  onkeyup='catchEnter(event, 1)' style='display:inline; ' ><br>(no voice)<br>  &nbsp   </span>
    					<span style='display:none;' id='radio_1'>
    						<input name=choix value='novoice' type=radio onkeyup='novoiceHanddlingEnter(event,this)'>No voice
    						<input name=choix value='en' checked type=radio onkeyup='novoiceHanddlingEnter(event,this)' onMouseDown='novoiceHanddling(this)'>en
    						<input name=choix value='fr' type=radio onkeyup='novoiceHanddlingEnter(event,this)'  onMouseDown='novoiceHanddling(this)'>fr
    						<input name=choix value='pt' type=radio onkeyup='novoiceHanddlingEnter(event,this)'  onMouseDown='novoiceHanddling(this)'>pt	
    						<input name=choix value='cancel' type=radio onkeyup='novoiceHanddlingEnter(event,this)' onMouseDown='novoiceHanddling(this)'>Cancel
    					</span>
    				</span>
    			</td>
    		</tr>
    		<tr id='1.en' onmouseover='hover(this, 0);' onmouseout='hover(this, 1);' onclick= 'novoicechange(this)' style='display: none;'>
    			<td>
    				<input type='hidden' id='subtitle_1.en' class='subtitle' value='<segment>' onkeydown='catchEnter(event, 1.en)' size=100/>
    				<span id='subtitleBox_1.en' name='subtitleBox_1' class='subtitlebox' style='display: none;'>
    					<span><segment></span>
    					<span class='autorbox' style='display: none;'><br>pom45i</span>
    					<span id='statutchange_1.en' class='statutchange' style='display:inline;' >
    						<span class='statutchangeicone' style='display:none;'>
    							<input type='image' src='images/icones/nosegment.gif' id='novoivebutton' onmousedown='if(event.button==2){novoicechange2(1)}' alt='Convert to no voice segment'/>
    							<input type='image' src='images/icones/delete.gif' id='deletebutton' onmousedown='if(event.button==2){deletethissegment(1);}' alt='Delete segment'/>
    						</span>
    						<input type='image' src='images/icones/statut.gif' id='statutbutton' onmousedown='if(event.button==2){toggleStatut(this)}' style='float:left;position: absolute;left:350px' alt='Toggle'/>
    					</span>
    					<span class='langagesubtitle' >en</span>
    				</span>
    			</td>
    		</tr> 
    </tr>
    


    J'utilise une boucle pour créer ma table et augmenter l'id du premier tr.
    Pour certaines valeurs je peux directement utilisé getElementById. Mais pour changer le style des subtitleBox_".$i.".".$langage.", c'est plus facile d'utiliser le DOM (le langage peut prendre des valeurs différentes de façon dynamique et si je dois changer dynamiquement mes fonctions javascript avant de pouvoir les appelés, je n'ai pas finit.

    Donc si quelqu'un peut me donner la ligne que je dois utiliser pour changer la couleur de fond de cette id, en utilisant le DOM et en partant de wtr id="i">, cela me sauverais beaucoup de temps.

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      11 juin 2010 à 13:17:43

      Le problème était deux <tr> à la suite.
      • Partager sur Facebook
      • Partager sur Twitter

      Explorer une table en utilisant le DOM

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown