jQuery对象从html表中查询为两个一维数组,用于Chartist图表
jQuery object from html table into two one-dimensional arrays for Chartist chart
这可能很简单,你可能会觉得很傻,但我被难住了。我在摆弄一些jQuery代码,这些代码应该从一个2列的HTML表中提取数据,然后吐出两个一维数组。例如[示例1',示例2',示例3'…]用于条形图标记,例如[66458724223…]用于图表中的条形值。
编辑:我后来发现"系列"数组应该是二维的,以便在同一图表中显示更多的数据集。如果只使用一个"系列"数据集,请在其周围放上括号,将其转换为数组中的数组
我已经设法将HTML表值放入一个jQuery对象中,如下所示:
var tdata = [];
var headers = [];
$('#myTable th').each(function(index, item) {
headers[index] = $(item).html();
});
$('#myTable tr').has('td').each(function() {
var tdataItem = {};
$('td', $(this)).each(function(index, item) {
tdataItem[headers[index]] = $(item).html();
});
tdata.push(tdataItem);
});
其中myTable是一个HTML表,类似于:
<table id="myTable">
<tbody><tr>
<th>Oxide</th>
<th>Proportion</th>
</tr>
<tr>
<td>Ca0</td>
<td>0.73</td>
</tr>
<tr>
<td>Li2O</td>
<td>0</td>
</tr>
<tr>
<td>MgO</td>
<td>0.13</td>
</tr>
</tbody></table>
问题是,我无法将第一列(在"Oxides"下)和第二列的值(在"Proportion"下)放入它们自己的一维数组中,以输入Chartist,Chartist基本上需要这个:
var data = {
labels: ['CaO', 'Li2O', 'MgO'],
series: [0.73, 0, 0.13]
]
};
我做了一个JSfiddle,你可以通过console.log(tdata);
看到数组的输出
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
0:
Object
Oxide:
"Ca0"
Proportion:
"0.73"
__proto__:
Object
这些对象似乎是多维的,或者有一些jQuery的怪异之处,因为我还没有为Chartist提取出一维的"标签"answers"序列"数组。不过,它应该非常简单?
看起来数据可能是向后的。您存储的是一个对象数组,而不是一个有2个数组的对象。
我用一个创建Chartist使用的"数据"对象的例子更新了fiddle。
https://jsfiddle.net/t539uuok/1/
var data = {
labels: [],
series: []
};
$("#myTable tr").has("td").each(function () {
data.labels.push($(this).find("td:first").html());
data.series.push($(this).find("td:last").html());
});
如果你需要它是动态的,就需要有其他的改变。但是,如果您只想捕获一维标签/序列数据,这将起作用。
相关文章:
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 如何在javascript中使用2个一维数组创建层次结构树
- 在两个位置显示数组中的随机单词
- 在两个不同的数组中查找匹配项 - javaScript
- PHP json_encode不适用于一维数组
- 如何在一维数组中存储 3 个随机数,然后在 Javascript 中收到警报
- 从jquery中的select选项添加两个不同的数组值(text&value)
- 在包含两个的Javascript数组中选择另一个元素
- 用Javascript从两个平面结构数组中格式化JSON
- JavaScript 中通过公共属性“交叉”两个 JSON 对象数组的最佳方式
- 合并两个多维数组,但不能使用日期时间重复
- 在JavaScript中组合来自两个多维数组的元素
- 如何将两个对象的数组列表合并为一个数组列表
- 如何创建两个相同的数组,并仅更改其中一个数组的值
- 在Javascript中匹配两个多维数组
- 如何在一次插入两个值到数组使用JavaScript
- 如何在JavaScript中将2个一维数组连接成1个二维数组
- D3.js:通过 d3 加载平面一维数组.csv导致“类型错误:组数据未定义”/使用 D3.js 加载多个 CSV 文件
- 当只应该更新一个数组时,角度更新两个不同的数组