2010-05-19 4 views
2

J'ai une table HTML comme ci-dessous:sélectionnez indiquer la ligne à l'aide Jquery

ColA  ColB ColC ColD ColE ColF 
Checked AAAA BBBB CCCC DDDD EEEE 
Unchecked AAAA BBBB CCCC DDDD EEEE 
Checked AAAA BBBB CCCC DDDD EEEE 
Checked AAAA BBBB CCCC DDDD EEEE 
Unchecked AAAA BBBB CCCC DDDD EEEE 
Checked AAAA BBBB CCCC DDDD EEEE 
Checked AAAA BBBB CCCC DDDD EEEE 

COLA une case à cocher. Je veux obtenir la valeur ColD de toutes les lignes dont le ColA est vérifié. Je veux utiliser la jquery pour le faire. Est-ce que quelqu'un le rencontre avant?

Cordialement,

Répondre

4
var array_of_the_values = $('table input:checked').map(function() { 
    return $(this).parents('tr').find('td:eq(3)').text(); 
    }).get(); 
+0

En fait, je veux faire une modification mineure. Je ne peux pas obtenir la bonne réponse en utilisant votre code. Donc je fais un petit changement, je change les parents ('tr') en parent(). Parent() –

0

La solution sans jQuery

var inputs = document.getElementById("tableId").getElementsByTagName("input"), input, i = inputs.length; 
while (i--){ 
    input = inputs[i]; 
    if (input.type == "checkbox" && input.checked){ 
     console.log(input.parentNode.parentNode.childNodes[3].innerHTML); 
    } 
} 

Ceci est garantie être beaucoup plus rapide que l'une des méthodes css-sélecteur (et plus facile à comprendre).

Et une légère réécriture pour retourner un tableau

var array_of_values = (function(table){ 
    var values = [], inputs = table.getElementsByTagName("input"), i = inputs.length; 
    while (i--) 
     if (inputs[i].type == "checkbox" && inputs[i].checked) 
      values.push(inputs[i].parentNode.parentNode.childNodes[3].innerHTML); 
    return values; 
})(document.getElementById("tableId")); 
+2

question a été explicitement lié à jQuery – jAndy

+0

vraiment pas Cest un bon argument .. D'autant plus que le plus ici pensent que javascript == jQuery .. –

+1

Je ne vous attendre à obtenir des œufs si je demande des oranges – jAndy

0

$ ('entrée de table: checked') parent ('tr') find ('td: eq (3)).. .texte();