2013-06-14 2 views
0

Lorsque ma page se charge, je vais utiliser un asp:DataGrid pour frapper la base de données et remplir certaines données cachées dans ma page. Lorsque l'utilisateur sélectionne une valeur dans une liste déroulante, je veux utiliser jquery pour trouver la valeur correspondante dans la table et retourner la valeur de l'intervalle de taux de fratrie. Ainsi, par exemple, si la valeur déroulante sélectionnée était 10, 80,00 serait renvoyé. Si 30 était sélectionné, 45,00 seraient renvoyés. Voici un exemple du code HTML généré.jquery recherche span adjacente dans la table basée sur la valeur

<table id="PercentGrid" cellspacing="0" border="1" style="border-collapse: collapse;"> 
    <tbody> 
    <tr> 
     <td> 
     <span id="Value">10</span> 
     <span id="Rate">80.00</span> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <span id="Span1">20</span> 
     <span id="Span2">75.00</span> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <span id="Span3">30</span> 
     <span id="Span4">45.00</span> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <span id="Span5">40</span> 
     <span id="Span6">100.00</span> 
     </td> 
    </tr> 
    </tbody> 
</table> 

Désolé, il s'agit d'une question en double ou quasi-dupliquée. Je suis assez nouveau à jquery, et ai également fait quelques recherches autour mais n'ai rien trouvé tout à fait raison. Merci!

+1

Pouvez-vous générer un objet javascript? Cela rendrait votre vie beaucoup plus facile. –

Répondre

0

Si vous modifiez votre code pour générer des portées comme ceci:

<span id="Rate30">45</span> 

Ensuite, vous pouvez simplement faire ceci:

$("#Rate" + $ddl.val()).text(); 

$ddl est votre liste déroulante.

0

Vous pouvez utiliser la fonction jQuery .next().

//iterate over each span to find the one that has the proper value 
var valueSpan = $('#PercentGrid').find('span').each(function() { 
    if ($(this).innerHtml() === value) return $(this); 
}) 
alert($(valueSpan).next().innerHtml());; 
+0

Si vous utilisez cette route, vous pouvez l'exécuter une fois et remplir un tableau javascript, avec quelque chose comme 'kvp: {code:" 10 ", valeur: 80}' ou quelque chose de similaire. Ensuite, vous pouvez accéder aux données sans exécuter des sélecteurs coûteux plus tard. – ginman

+1

que se passerait-il si vous recherchez la valeur '20' mais le taux de la valeur '10' était de 20 (au lieu de 80 dans l'exemple) ..? Vous devriez probablement limiter votre recherche à la première travée de chaque tr – devrooms

Questions connexes