Exploitation du DOM avec JavaScript

Exploitation du DOM avec JavaScript - Divers - Programmation

Marsh Posté le 13-03-2013 à 09:04:08    

Bonjour à tous, je viens de commencer à apprendre le JavaScript dans le cadre de mon stage, je rencontre donc quelques difficultés...
J'aimerais récupérer la valeur d'une case à cocher, par le code source HTLM...
 
Ma fonction JavaScript :

Code :
  1. function CAC_Montant(nomFormulaire)
  2. {
  3. var montant = 0;
  4. var res = 0;
  5. var f = document.getElementById(nomFormulaire);
  6. var longueur = f.length;
  7. for(var i=0; i<longueur; i++)
  8. {
  9.       if(f.elements[i].checked){
  10.        {   
  11.   res = parseFloat(f.getElementsByTagName('div')[8].getAttribute("title" ));
  12.             montant = res + montant;
  13.        }
  14.      }
  15. }
  16. return(montant)
  17. }


 
 
 
Un tr du code HTML
 
 

Code :
  1. <tr id='taListeEncaissementsNonRapprLigne0' onclick='setLnActTb(this.id,"TbLnPr" )' style='cursor:default;' class='TbLnPr' onmouseover='this.className="TbLnOv"' onmouseout='this.className="TbLnPr"'>
  2. <td width=30 align='center'><input type='checkbox' id='cptTableSelecttaListeEncaissementsNonRappr_0' name='cptTableSelecttaListeEncaissementsNonRappr[]' value='1215725' onclick='setCptSltLstChbx("taListeEncaissementsNonRappr","cptTableSelecttaListeEncaissementsNonRappr[]" )'>
  3. </td>
  4. <td align='center' style='width:15%' onclick=''>
  5. <div class='celluleTable' title='1215725'>1215725</div>
  6. </td>
  7. <td align='center' style='width:10%' onclick=''>
  8. <div class='celluleTable' title='X'>X</div>
  9. </td>
  10. <td align='center' style='width:15%' onclick=''>
  11. <div class='celluleTable' title='4401'>4401</div>
  12. </td>
  13. <td align='center' style='width:15%' onclick=''>
  14. <div class='celluleTable' title='13596932'>13596932</div>
  15. </td>
  16. <td align='center' style='width:15%' onclick=''>
  17. <div class='celluleTable' title='29/10/2012'>29/10/2012</div>
  18. </td>
  19. <td align='center' style='width:15%' onclick=''>
  20. <div class='celluleTable' title='29/10/2012'>29/10/2012</div>
  21. </td>
  22. <td align='center' style='width:15%' onclick=''>
  23. <div class='celluleTable' title='75.00'>75.00</div>
  24. </td>
  25. </tr>


 
 
 
Ma fonction me retourne donc 75 à chaque fois... Et c'est normal car le ' res ' de ma fonction renvoie toujours le 8eme div.... Je n'arrive pas à partir du TR courant, afin de lui dire de ne regarder que les DIV qui s'y trouvent !
Autrement dit :  
Je voudrais renvoyer le 8eme div du TR qui correspond à la case qui a été cochée, pas le 8ieme DIV de la page !
J'arrive à savoir avec ma fonction si une case a été cochée, mais je n'arrive pas à récupérer le montant qui correspond a sa ligne.
Si dans mon tableau, la case de la 5ième ligne a été cochée, je voudrais prendre le montant de cette ligne, donc le div du 5ieme TD, pas le 8ieme DIV de ma page :/
 
Si quelqu'un pouvait donc m'aider =)
 
Voilà tout ce que j'ai tester à présent, et toutes les pistes sur lesquelles j'ai été amener, si cela inspire quelqu'un =)
( rien ne marche dans le code si dessous, où alors je l'exploite mal... )
 

Code :
  1. function CAC_Montant(nomFormulaire)
  2. {
  3. var montant1 = 0;
  4. var obj;
  5. var res = 0;
  6. var f = document.getElementById(nomFormulaire);
  7. var longueur = f.length;
  8. var montantReleve;
  9. var td = f.getElementsByTagName("td" );
  10. // montantReleve = f.getElementsByTagName('cptrapproIdReleveBancaire').getAttribute("value" );
  11. // var div = f.getElementsByTagName("div" );
  12. for(var i=0; i<longueur; i++)
  13. {
  14.        if(f.elements[i].checked){
  15.         //obj = f.getElementsByTagName('td')[i];
  16.      //res = document.getElementById('taListeEncaissementsNonRapprLigne'+[i].getAttribute("class" );
  17.  //alert(res);
  18.  //res = parseFloat(f.getElementsByTagName('div')[8].getAttribute("title" ));
  19.  //.getElementsByTagName('div')[5].getAttribute("title" ));
  20.         //alert(res);
  21.            
  22.  //var fils = f.childNodes;
  23.  //var nbFils = fils.length;
  24.  //for(var i = 0; i < nbFils; i++){
  25.     //document(fils[i]);
  26.  //}
  27.  var div = td[i].getElementsByTagName("div" );
  28.   alert("Variable div : " + div);
  29.  //res = div[8].getAttribute("title" );
  30.  //var fils2 = fils.childNodes;
  31.  //res = parseFloat(fils[i].childNodes[8].getAttribute("title" ));
  32.  //res = Number(fils2[8].getAttribute("title" ));
  33.   //res = parseFloat(fils2[8].getAttribute("title" ));
  34.  //for (var i=0; i < div.length; i++)
  35.  //{
  36.  //div[i].style.display="block";
  37.  //alert("O" );
  38.  //}
  39.   var test = document.getElementsByTagName('div').item(0).nodeName;
  40.   alert("Variable test : " + test);
  41. var ch_res = '';
  42. var col = document.getElementsByName('div');
  43. var taille = col.length;
  44. for (j=0; j<taille; j++){
  45. ch_res = col.item(j);
  46. }
  47.       alert(ch_res);
  48.      
  49.  var fils = f.elements[i].childNodes;
  50.  var fils2 = fils.nodeValue;
  51.  alert("Variable fils 2 : " + fils2);
  52.  //res = parseFloat(fils.getAttribute("title" ));
  53.   //alert(res);
  54.   //montant1 = res + montant1;
  55.        }
  56. }
  57. alert("Montant : " + montant1);
  58. return(montant1)
  59. }


 
Cordialement, Mallik.

Reply

Marsh Posté le 13-03-2013 à 09:04:08   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed