2010-12-08 20 views
1

J'ai besoin d'aide pour sélectionner une cellule dans ma grille. J'ai une table comme ceci:Jquery Récupérer la valeur de la cellule en fonction de l'état d'une autre cellule

<table> 
<tr> 
<th>CheckBox</th> 
<th>Customer ID</th> 
<th>First Name</th> 
<th>Last Name</th> 
</tr> 
<tr> 
<td>CheckBox</td> 
<td>1</td> 
<td>Joe</td> 
<td>Blogs</td> 
</tr> 
<tr> 
<td>CheckBox</td> 
<td>2</td> 
<td>Chris</td> 
<td>White</td> 
</tr> 
</table> 

J'ai besoin de sélectionner la cellule d'identification de la ligne qui est actuellement vérifiée. Comment ferais-tu ceci?

J'ai eu une recherche mais ne peux pas sembler trouver quelque chose comme ce qui précède.

+0

Vos éléments 'tr' n'ont pas d'attributs' id'. Postez le vrai mark-up, s'il vous plaît. –

+1

@David Thomas - Je crois que la «cellule d'identité» est la deuxième colonne de chaque rangée. – sje397

Répondre

3
$(":checkbox").click(function(){ 
    if(this.checked){ 
     var id = $(this).parent().next().text();  
     // assuming your second column has id you're looking for [customer id] 
    } 
}); 

wokring demo

2

En théorie, cela fonctionnerait:

$('input:checkbox').change(
    function(){ 
     if ($(this).is(':checked')) { 
      var theRowId = $(this).closest('tr').attr('id'); 
     } 
    }); 

A quick and dirty JS Fiddle demo.


Modifié: pour expier ma mauvaise compréhension de la question et le code html:

Étant donné que le numéro que vous voulez trouver est stocké dans une cellule (une cellule à laquelle j'ai attribué une classe 'rowID', pour faciliter l'accès) les travaux suivants:

$(document).ready(

function() { 
    $('.rowID').each(
     function(i){ 
      $(this).text(i+1); 
     }); 
    $('input:checkbox').change(

    function() { 
     if ($(this).is(':checked')) { 
      var theRowId = $(this).parent().siblings('.rowID').text(); 
      $('#rowId').text(theRowId); 
     } 
    }); 
}); 

JS Fiddle demo

0

Eh bien, votre structure de base est:

<tr> 
<td>CheckBox</td> 
<td>2</td> 
<td>Chris</td> 
<td>White</td> 
</tr> 

donc cela peut résoudre votre problème:

$(document).ready(function() 
{ 
    $('tr td').find('checkbox').click(function() 
    { 
     var line_id = $(this).parent('td').next().text(); 
    }); 
}); 

J'espère que ça aide! ^^