2015-06-23 8 views
5

Ho una tabella. Sto cercando di trovare la somma come di seguito: td(1) + td(2) + td(3) = td(4), td(5) + td(6) + td(7) = td(8), td(9) + td(10) + td(11) = td(12).La somma dei campi di testo sulla chiave causa problemi nel primo campo di una riga

Ecco il mio codice:

$(document).ready(function() { 
    $('#table').on('keyup', 'input', function() { 
     $("#table tr").slice(2).find("td:nth-child(4n + 1)").each(function() { 
      var sum = 0; 
      $(this).prevAll(':lt(3)').find('input').each(function() { 
       sum += (+this.value || 0) 
      }); 
      $(this).find('input').val(sum) 
     }) 
    }) 
}) 

Il codice sopra funziona bene. Ma il mio problema è che non posso inserire alcun elemento nella prima colonna (ovvero, td:eq(0)). Cosa c'è di sbagliato nel mio codice?

http://jsfiddle.net/b0svwpnn/3/

risposta

4

è necessario escludere esplicitamente la prima input dalla nth-child selezione, che è possibile ottenere utilizzando :not(). Prova questo:

$("#table tr").slice(2).find("td:nth-child(4n + 1):not(:first)") 

Updated fiddle

+0

Thannkzz. Funziona bene. – Rose

Problemi correlati