2015-06-23 21 views
5

Tôi có bảng. Tôi đang cố gắng tìm hiểu tóm tắt như sau: td(1) + td(2) + td(3) = td(4), td(5) + td(6) + td(7) = td(8), td(9) + td(10) + td(11) = td(12).Tóm tắt các trường văn bản trên khóa làm cho các vấn đề trong trường đầu tiên của một hàng

Đây là mã của tôi:

$(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) 
     }) 
    }) 
}) 

Đoạn mã trên hoạt động tốt. Nhưng vấn đề của tôi là, tôi không thể nhập bất kỳ thứ gì vào cột đầu tiên (ví dụ: td:eq(0)). Có gì sai với mã của tôi?

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

Trả lời

4

Bạn cần phải loại trừ một cách rõ ràng input đầu tiên từ nth-child lựa chọn, mà bạn có thể đạt được bằng :not(). Hãy thử điều này:

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

Updated fiddle

+0

Thannkzz. Nó hoạt động tốt. – Rose

Các vấn đề liên quan