2010-05-22 6 views
1

J'ai le code HTML suivant. Ce que j'essaye de faire est d'avoir le div nommé javaRatingDiv à afficher une fois que la case à cocher avec le nom java est vérifiée.jquery accéder à un frère TD dans le tableau

Je n'arrive pas à comprendre comment naviguer vers le prochain TD dans une table via jquery.

<div id="languages"> 
    <table style="width:inherit"> 
    <tr style="height:50px; vertical-align:top"> 
    <td>Select the languages that you are familiar with and rate your knowledge:</td> 
    </tr> 
    <tr> 
    <table style="width:75%;" align="center"> 
    <tr id="tableRow"> 
     <td id="firstTD"><input type="checkbox" name="java" value="java" />&nbsp;Java</td> 
     <td id="secondTD" style="width:200px;"> 
     <div id="javaRatingDiv" style="display:none"> 
      <input name="javaRating" type="radio" value="1" class="star"/> 
      <input name="javaRating" type="radio" value="2" class="star"/> 
     </div> 
     </td> 
    </tr> 
    </table> 
    </tr> 
    </table> 
</div> 

Répondre

2

Par souci de la question et le cas de plusieurs « javaRatingDivs » cela pourrait fonctionner dans la fonction de clic de case à cocher:

$(this).parent().next().find('div').show(); 

.parent() obtient l'élément parent .next() obtient la prochaine frère, tel que le NEXT td .find (sélecteur) vous permet de trouver quelque chose dans ce frère

Cette information est pour quand vous obtenez dans les questions de plusieurs articles et ne pas avoir d'ID de référence directement. Dans votre cas ci-dessus, $ ('# javaRatingDiv'). Show(); fonctionnerait bien comme l'a mentionné Patrick.

+0

C'est exactement ce que je cherchais. Merci Dan. Ça a bien marché. Appréciez l'explication car je suis assez nouveau à JQuery. –

+0

Puisque c'est ce que vous recherchez: Une chose, alors, à garder dans votre boîte à outils est la fonction .parents(). Si le 'td' n'est pas toujours au-dessus, quelque chose comme ça va marcher: $ (this) .parents ('td: first'). Next(). Find ('div.classOfYourRateDiv'). Show() ; –

+0

+1 pour l'exemple de traversée. J'avais le sentiment que OP avait peut-être envie de le faire, mais il se dirigeait vers la porte. :) – user113716

1

Depuis le div a une carte d'identité, vous pouvez y accéder directement.

$('#javaRatingDiv'); 

Cela va récupérer le div avec ID 'javaRatingDiv'.

+0

Merci. Je cherche actuellement à accéder à la DIV sans l'ID. L'identifiant va peut-être être retiré. Ceux-ci vont être chargés à partir d'une base de données et chaque section n'aura pas un identifiant unique. Est-il possible d'y accéder en utilisant la structure DOM? Peut-être que frères et sœurs? –

Questions connexes