javascript - 如何获取表格内容并将其作为多维数组放入变量中

标签 javascript jquery html

我想做的是获取表格内容并将其作为多维数组放入 jquery 变量中。这可能吗?谁能给我一个例子谢谢。

enter image description here

最佳答案

假设“表格内容”是指“数据”,您可以嵌套调用jQuery.map() ( fiddle ):

// 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"
}]

参见 Array.prototype.map()Array.prototype.reduce()在 MDN 上。

关于javascript - 如何获取表格内容并将其作为多维数组放入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045008/

相关文章:

jquery - 如何使用 jQuery 设置单选选项检查 onload

javascript - 在未实现接口(interface) FormData 的对象上调用“追加”

javascript - JavaScript 中的时间戳格式

html - 将节点的内容克隆到不同的命名空间

html - wordpress 主题的中心页脚

php - 使用获取变量扩展链接

javascript - 从带有滚动条的 div 拖放 - overflow-y 滚动 VS overflow-x 可见

javascript - 创建平面网格,其中点定义颜色

javascript - 可以更改部分字母的衬线吗?

javascript - 如何在 Mobile Safari 中设置内容可编辑的 div 的文本插入位置?