2012-03-06 33 views
13

Tôi muốn hỏi là có thể chuyển đổi một TABLE HTML thành mảng trong javascript? Tôi có cái bàn này. Tôi chưa thử làm gì cả.Chuyển đổi bảng html thành mảng trong javascript

<table id="cartGrid"> 
    <thead> 
     <tr> 
      <th>Item Description</th> 
      <th>Qty</th> 
      <th>Unit Price</th> 
      <th>Ext Price</th> 
     </tr> 
    </thead> 
<tbody> 
    <tr><td>Old Lamp</td><td>1</td><td>107.00</td><td>107.00</td> 
    <tr><td>Blue POst</td><td>2</td><td>7.00</td><td>14.00</td> 
</tbody> 
</table> 
+0

vâng. được rồi, bây giờ cho chúng tôi thấy một số mã, những gì bạn đã thử hoặc bảng trông như thế nào. – f0x

+0

Một mảng của những gì? Các phần tử bao gồm bảng, các giá trị bên trong các ô? – kinakuta

+0

Có, bằng cách viết mã cho nó :) (sẽ lặp lại thông qua các hàng và cột của nó!) – linuxeasy

Trả lời

32

Đây là một ví dụ về thực hiện những gì bạn muốn.

var myTableArray = []; 

$("table#cartGrid tr").each(function() { 
    var arrayOfThisRow = []; 
    var tableData = $(this).find('td'); 
    if (tableData.length > 0) { 
     tableData.each(function() { arrayOfThisRow.push($(this).text()); }); 
     myTableArray.push(arrayOfThisRow); 
    } 
}); 

alert(myTableArray); 

Bạn có thể mở rộng bằng cách sử dụng văn bản của TH để thay vào đó tạo cặp khóa-giá trị cho mỗi TD.

Kể từ khi thực hiện này sử dụng một mảng đa chiều, bạn có thể truy cập vào một hàng và một td bằng cách làm một cái gì đó như thế này:

myTableArray[1][3] // Fourth td of the second tablerow 

Edit: Đây là một fiddle ví dụ của bạn: http://jsfiddle.net/PKB9j/1/

+1

Bạn sẽ muốn cụ thể hơn với bộ chọn của mình hơn "bảng tr", đặc biệt là nếu bạn đang sử dụng bảng cho bố cục ở bất kỳ đâu, vì điều này sẽ tìm tất cả các tr) nằm bên trong một cái bàn. Với HTML được cập nhật, bộ chọn sẽ là '$ ('# cartGrid')'. – GregL

+0

Đương nhiên. Nó chỉ là một ví dụ. Tôi sẽ cập nhật nó cho rõ ràng. –

+0

Vâng, tôi biết điều đó. Nhưng có vẻ như OP không quá tự tin với JS và jQuery, điều đó là tốt, nhưng tôi muốn chỉ ra nó trong trường hợp họ chỉ sao chép mã của bạn và có kết quả bất ngờ nếu họ tình cờ sử dụng các bảng lồng nhau bố trí. – GregL

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