2010-05-27 6 views
1

J'ai une table où toutes les cellules sont des étiquettes INPUT. J'ai une fonction qui recherche la première cellule et la remplace par sa valeur. Donc ceci:jQuery Référence Première colonne dans HTML Table

<tr id="row_0" class="datarow"> 
    <td><input class="tabcell" value="Injuries"></td> 
    <td><input class="tabcell" value="01"></td> 

devient ceci:

<tr id="row_0" class="datarow"> 
    <td>Injuries</td> 
    <td><input class="tabcell" value="01"></td> 

Voici la première partie de la fonction:

function setRowLabels() { 

    var row = []; 
    $('.dataRow').each(function(i) { 
     row.push($('td input:eq(0)', this).val() + ' -> '); 
     $('td input:eq(0)', this).replaceWith($('td input:eq(0)', this).val()); 
     $('td input:gt(0)', this).each(function(e) { 
    etcetera 

Mais quand la page rechargements, la première colonne est pas un type d'entrée , donc ça change la deuxième colonne en texte aussi! Puis-je lui dire de ne modifier que la première colonne, quel que soit son type? J'ai essayé
$('td:eq(0)', this).replaceWith($('td:eq(0)', this).val());
mais cela ne fonctionne pas.

Toute suggestion appréciée!

Répondre

1

Avec votre version, vous sélectionnez le td au lieu du input.

// Selects the first td in the row 
$('td:eq(0)', this).replaceWith($('td:eq(0)', this).val()); 

Essayez ceci:

// Selects the input of the first td in the row 
$('td:eq(0) input', this).replaceWith($('td:eq(0) input', this).val()); 
+0

Quand j'ai lu votre réponse, j'ai pensé que vous aviez tapé exactement ce que j'avais essayé la première fois. Après relecture, je vois que vous avez changé 'td entrée: eq (0)' à 'td: eq (0) entrée'
Et cela a fonctionné! Merci! – Vic

+0

De rien. Content que ça a marché! – user113716

0
+0

Aussi, ne sais pas si vous pris cela, mais vous avez « datarow » comme valeur d'attribut de classe de votre tr, et « datarow » comme valeur dans votre fonction JQuery. –

+0

Oups, faute de frappe. Ils sont tous deux dataRow. – Vic

+0

La pseudo-classe CSS td: nth-child est maintenant marquée! Des couleurs plutôt jolies ... – Vic

Questions connexes