我想要的是获取表内容并将其作为多维数组放入jquery变量中。这可能吗?谁能给我一个例子谢谢。
答案 0 :(得分:2)
假设“table content”表示“数据”,您可以将调用嵌套到jQuery.map()
(fiddle):< / p>
// for each content row, retrieve an array of cell-text values
var data = $.map($("tbody tr"), function (tr) {
return [$.map(tr.cells, function (td) {
return $(td).text();
})];
});
输出:
[
["four", "4", "Female"],
["one", "1", "Male"],
["three", "3", "Female"],
["two", "2", "Male"]
]
...并以简单的javascript(fiddle):
var data = [].map.call(document.querySelectorAll("tbody tr"), function (tr) {
return [].map.call(tr.cells, function(td) {
return td.textContent;
});
});
现在,as others have suggested,你可以(也许应该)考虑一个对象数组(fiddle):
// get the header names so we can use them for our object property names
var names = [].map.call(document.querySelectorAll("thead th"), function (th) {
return th.textContent;
});
// for each content row, retrieve an object-representation of the data
var data = [].map.call(document.querySelectorAll("tbody tr"), function (tr) {
return [].reduce.call(tr.cells, function (p, td, i) {
p[names[i]] = td.textContent;
return p;
}, {});
});
输出:
[{
"Name": "four",
"Age": "4",
"Gender": "Female"
}, {
"Name": "one",
"Age": "1",
"Gender": "Male"
}, {
"Name": "three",
"Age": "3",
"Gender": "Female"
}, {
"Name": "two",
"Age": "2",
"Gender": "Male"
}]
答案 1 :(得分:1)
Vanilla javascript(没有jQuery,因为你没有在最初的问题中说明):
var multArray = []; // The multi dimensional array
var tableId = "#mytable"; // Change this according to your html
var rows = [].slice.call(document.querySelectorAll(tableId + " tr"));
var td, x = 0 , y = 0;
rows.forEach(function(row){
row = [].slice.call(row.querySelectorAll("td"));
multArray.push(row.map(function(x){return x.innerHTML || "";}))
})
演示: http://jsbin.com/cireyuka/1/edit
注意:
我必须说,在大多数情况下,多维数组并不是最好的情况。
你想要实现什么目标?
答案 2 :(得分:0)
使用jQuery,你可以试试这个:
var myTableAsArray = (function(){
var retval =[];
$('#your_table').find('tr').each(function(it,ele){
var cells = $(ele).find('td');
var tmp = {
Name: cells.eq(0).text(),
Age: cells.eq(1).text(),
Gender: cells.eq(2).text()
};
retval.push(tmp);
});
return retval;
})();
然后你得到一个包含pattmorter评论等对象的数组。
答案 3 :(得分:-1)
我写过的类似的一些示例代码。希望这应该给你一个想法!
$('#tableAssortmentList tr').each(function () {
// if you want specific or all cells
$(this).find('td.cell.id').each(function () {
//do your stuff, you can use $(this) to get current cell
priceArray.push($(this).text().substring(1));
})
})