2010-04-01 7 views
7

Tôi có một bảng có tên khách hàng cùng với các sản phẩm họ đã mua với giá của họ. Vì vậy, có nhiều bản ghi cho mỗi khách hàng. Bảng này là bảng 3 cột đơn giản: tên, sản phẩm và giá cả.Làm cách nào để thêm các hàng ở giữa một bảng với jQuery?

Những gì tôi muốn làm là:

Đặt tất cả hồ sơ thuộc một khách hàng với nhau (tôi đã thực hiện nó) và chỉ sau khi các hàng bổ sung thêm một hàng mới trong đó sẽ chỉ hiển thị giá tổng cộng của tất cả các sản phẩm mỗi khách hàng đã mua. Hàng này sẽ có ô trống trong tên và cột sản phẩm. Và sẽ có tổng giá trong cột.

EDIT

Nó chỉ là một bảng đơn giản đơn giản mà không cần bất kỳ lớp hoặc id. Bảng nhóm khách hàng khôn ngoan được tạo bởi php. Vì vậy, tôi đã là một bảng như thế này

<table> 
    <tr> 
     <td> name1 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <tr> 
     <td> name1 </td> 
     <td> product2 </td> 
     <td> 200 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product3 </td> 
     <td> 50 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
</table> 

Và tôi muốn chuyển đổi này để:

<table> 
    <tr> 
     <td> name1 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <tr> 
     <td> name1 </td> 
     <td> product2 </td> 
     <td> 200 </td> 
    </tr> 
    <!-- New row --> 
    <tr> 
     <td> </td> 
     <td> </td> 
     <td> 300 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product3 </td> 
     <td> 50 </td> 
    </tr> 
    <tr> 
     <td> name2 </td> 
     <td> product1 </td> 
     <td> 100 </td> 
    </tr> 
    <!-- New row --> 
    <tr> 
     <td> </td> 
     <td> </td> 
     <td> 150 </td> 
    </tr> 
</table> 
+0

Bạn đang phân định ranh giới các hàng cho từng khách hàng như thế nào? Một lớp học? ID? Nếu bạn có một cái gì đó có thể nhận dạng, nó sẽ dễ dàng để có được hàng đó và sửa đổi DOM sau khi nó. – justkt

+0

Bạn có thể cung cấp một số mã HTML không? Vì vậy mà chúng ta có thể thấy tên lớp bạn cung cấp cho các yếu tố, vv –

Trả lời

8

Sử dụng jQuery, bạn có thể chọn tất cả các hàng nơi tên người dùng được chứa trong một trong các phần tử con cháu của nó. Tôi giả sử tên người dùng là duy nhất.

$("tr:contains('" + username + "')") 

Bây giờ, có cuối cùng một

$("tr:contains('" + username + "')").last() 

Và sử dụng after chức năng để chèn hàng mới của bạn.

+0

ok, tôi thấy điểm. Tôi có thể thêm lớp dựa trên tên và sử dụng mẹo của bạn. Nhưng tôi nghĩ bằng cách nào đó tôi đã có được danh sách của tất cả các tên đầu tiên. – understack

15
var prize = 1 * 1; 
    var newrow = $('<tr><td></td><td></td><td>' + prize + '</td></tr>'); 
    $('#rowid').after(newrow); 

hoặc

newrow.insertAfter('#rowid'); 

nơi #rowid là một id từ một dòng bạn muốn nối thêm một dòng mới.

+0

tôi đã sử dụng câu trả lời này. rất hữu ích :) bằng cách này, là có một cách để animate chèn? : D – Obay