2009-10-18 7 views
0

Je veux afficher le div div divmentBody div qui appartient à la case "cochée", mais ne peut pas le trouver en utilisant javascript.DOM javascript Navigation

C'est la fonction javascript:

function ExpandClick(state) {  

      var TargetBaseControl = document.getElementById("commentsTable"); 
      var Inputs = TargetBaseControl.getElementsByTagName('input'); 

      for (var n = 0; n < Inputs.length; ++n) if (Inputs[n].type == 'checkbox' && Inputs[n].id.indexOf('chkBox', 0) >= 0) {  if (Inputs[n].checked == true) { 

      //Get divCommentBody div that belongs to this chekbox 

       } 
      } 
     }  

Ceci est le balisage:

<table cellpadding="0" border="0" id="commentsTable"> 
       <tr class="Comment">   
       <td class="CommentCheck"> 
         <input id="ctl00_col2_rptComments_ctl01_chkBox" type="checkbox" name="ctl00$col2$rptComments$ctl01$chkBox" />      
        </td>    
       <td class="CommentBy" > 
         <span id="ctl00_col2_rptComments_ctl01_lblUserName" title="Posted by name">someone</span>      
       </td>    
       <tr> 
       <td colspan="100%"> 
        <div id="ctl00_col2_rptComments_ctl01_divCommentBody" style="padding: 0 0 0 55px;display:none;background-color: #E8F1F4;">                    
        </div>               
       </td> 
       </tr>                      
       <tr class="Comment">   
       <td class="CommentCheck"> 
        <input id="ctl00_col2_rptComments_ctl02_chkBox" type="checkbox" name="ctl00$col2$rptComments$ctl02$chkBox" />    
       </td> 
       <td class="CommentBy" > 
        <span id="ctl00_col2_rptComments_ctl02_lblUserName" title="Posted by name">marco</span>      
       </td>     
       <tr> 
       <td colspan="100%"> 
        <div id="ctl00_col2_rptComments_ctl02_divCommentBody" style="padding: 0 0 0 55px;display:none;background-color: #E8F1F4;">           

        </div>               

       </td> 
      </tr>   

     </table> 

Répondre

0

Vous pouvez l'obtenir comme ceci:

var divId = Inputs[n].id.replace(/chkBox$/, 'divCommentBody'); 
var div = document.getElementById(divId); 
+0

que je peux faire confiance à ces « ids » qui ont généré par asp? – samuel

+0

Je pense donc ... ASP n'est pas mon truc si – Greg

+0

Est-il possible d'accéder à ce div sans manipuler les identifiants? – samuel

0

Alternativement, si vous utilisez Sizzle (exemple jQuery):

$('[id$="_divCommentBody"]') 

Alternativement à mon autre, si la structure de la table ne changera pas:

$('#commentsTable tr:last-child div') 
+0

Impossible d'utiliser jQuery ... – samuel

Questions connexes