javascript - 如何使用 jQueryeach 函数从 html 表中提取数据

标签 javascript json html-table

我需要从 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')

调试 jQuery 时,始终将选择器作为最初的嫌疑人。在继续链之前检查他们是否找到了元素。因此:

alert($('tableClass').length)

...将为您提供0

(旁注:

$('tableClass').find('tbody').children('tr')

可以缩短为

$('tableClass').find('> tbody > tr')

关于javascript - 如何使用 jQueryeach 函数从 html 表中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462705/

相关文章:

javascript - AngularJS 使用对象属性对多个对象数组进行排序

javascript vue 获取 JSON 值

C# 将 JSON 反序列化为各种类型

html - 如何用CSS实现这种表格布局?

php - 如何替换 html 表格 onchange 的单列

javascript - 使垂直网格线出现在跨表单元格的顶部

javascript - 显示另一个基于JS if语句的隐藏div用于选择表单

javascript - html5 Canvas 中心圆

javascript - 网络音频 : Oscillating AudioBufferSource playbackRate

javascript - Meteor 无法从 json 文件加载设置