我有点像一个JavaScript菜鸟,因此解决方案可能比我意识到的更基本。我正在尝试从此表中获取数据并将其显示在数组中。表格如下:
<table id="myTable">
<col>
<thead>
<tr>
<th>Date</th>
<th>Results1</th>
<th>Results2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jan-00</td>
<td>9</td>
<td>10</td>
</tr>
<tr>
<td>Feb-00</td>
<td>92</td>
<td>64</td>
</tr>
从那里继续(这是一张包含大量<tr>
的长桌)。
我获取变量的代码从以下开始(给其他来源提供帮助以解决这个问题):
var columns = $('#myTable thead th').map(function() {
return $(this).text();
});
var tableObject = $('#myTable tr').map(function(i) {
var row = {};
// Find all of the table cells on this row.
$(this).find('td').each(function(i) {
// Determine the cell's column name by comparing its index
// within the row with the columns list we built previously.
var rowName = columns[i];
// Add a new property to the row object, using this cell's
// column name as the key and the cell's text as the value.
row[rowName] = $(this).text();
});
// Return the row's object representation, to be included
// in the array that $.map() ultimately returns.
return row;
// .get() to convert the jQuery set to a regular array.
}).get();
for (var i in tableObject) {
$.each(tableObject[i], function(key,value) {
var line1 = {};
line1[key] = value;
console.log(line1); //test
});
}
在console.log测试中,变量line1现在显示其持有键和值,如下所示:日期:Jan 00,Results1:9,Results2:10。
这一切都很好,但我确实需要以下列格式将这些值转换为新数组:
var new = [[Date, Results1], [Date, Results2], etc...];
道歉,如果我重复一个问题,但找不到我想要的东西。非常感谢任何人都能提供的帮助。
答案 0 :(得分:1)
这应该这样做:
var ary = [];
$('tr').each(function() {
date = $('td:first', this).text();
$('td:gt(0)', this).each(function() {
ary.push([date, $(this).text()]);
});
});
答案 1 :(得分:0)
看看http://www.w3schools.com/jsref/dom_obj_table.asp 我建议使用 tableObject .rows来获取包含单元格的行数组。然后使用行 .cells获取所有单元格元素。 它可能看起来像
var table =document.getElementById("myTable")
var foo = new array(table.rows.length);
for(var j =0; j<foo.length; j++)
foo[j]=foo[j].cells;
这将为您提供一个名为foo的二维数组表。在表格中被复制 FOO [rowIndex位置] [COL / cellindex] (即foo [0] [1]将返回结果1;
希望这可以帮助你开始