【发布时间】:2015-05-07 19:20:09
【问题描述】:
我需要从 html 表中提取数据以创建 JSON 数组。
这里是HTML表格的结构,
<table class="tableClass">
<thead class="tableHeaderClass" >
<tr>
<th>header_column1</th>
<th>header_column2</th>
<th>header_column3</th>
</tr>
</thead>
<tbody class="tableBodyClass">
<tr>
<td>row1_column1</td>
<td>row1_column2</td>
<td>row1_column3</td>
</tr>
<tr>
<td>row2_column1</td>
<td>row2_column2</td>
<td>row2_column3</td>
</tr>
</tbody>
</table>
在我的 JavaScript 函数中,我正在这样做
function() {
var json = {
header_column1 : '',
header_column2 : '',
header_column3 : ''
};
var data = [];
$('tableClass').find('tbody').children('tr').each(function() {
var $tds = $(this).find('td');
json.header_column1 = $tds.eq(0).text();
json.header_column2 = $tds.eq(1).text();
json.header_column3 = $tds.eq(2).text();
data.push(json);
});
return data;
}
当我打印我的数组时,我只得到 'row2_column1, row2_column2, row2_column3'。
无法锻炼我做错/错过的事情。如果您能帮我解决这个问题,那就太好了。
【问题讨论】:
-
只要你使用
$('tableClass')而不使用.,你就无法得到任何东西 -
您也可以将每一行压缩成:
$('.tableClass tbody tr').无需查找然后孩子调用 -
另外你的代码毫无意义,你有标题和非标题元素,但是你用名为“header_column1”的属性填充你的对象文字......在尝试之前你应该清楚你的代码逻辑任何事物。同样使用
=而不是:是只需打开控制台 或使用更好的文本编辑器即可轻松捕获的错误。 -
感谢大家的反馈,我刚刚开始接触 JS,我猜还是相当缺乏经验..非常欢迎您的反馈,它可以帮助我提高代码质量..哦顺便说一句,还有一些错别字……忘记了。并使用 = 而不是 : 将更正我的帖子..
标签: javascript json html-table