Javascript 从表单元格中获取值并转换为数组

Javascript 从表单元格中获取值并转换为数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,使用jquery,我需要从表单元格中检索数组,格式化数据并将其传递到js函数中 我使用的代码如下: var l1 = new Array(); $('table#datatable tbody td:first-child').each(function() { l1.push($(this).text()); }); 这是表片段 <tr> <th scope="row">Age: 0-4</th>

使用jquery,我需要从表单元格中检索数组,格式化数据并将其传递到js函数中

我使用的代码如下:

 var l1 = new Array();
   $('table#datatable tbody td:first-child').each(function() {
   l1.push($(this).text());
   });
这是表片段

  <tr>
               <th scope="row">Age: 0-4</th>
               <td>0</td>
               <td>9.7</td>
           </tr>
           <tr>
               <th scope="row">5-17</th>
               <td>23.6</td>
               <td>18.0</td>
           </tr>
           <tr>
               <th scope="row">Total 0-17</th>
               <td>20.6</td>
               <td>16.1</td>
           </tr>
该表的id是datatable。我想返回第一个td的内容数组,然后将其格式化如下: 0,23.6,20.6

我对使用数组非常陌生

这应该有效:

var values = [];
$('#datatable tbody tr').each(function () {
    values.push($('td:first', this).text());
});
console.log(values);
说明:

第1行:创建values变量并将其设置为空数组。 第2行:循环数据表中的每个tr。 第3行:将tr中第一个td的文本添加到values数组中。 值现在由值填充。 这应该起作用:

var values = [];
$('#datatable tbody tr').each(function () {
    values.push($('td:first', this).text());
});
console.log(values);
说明:

第1行:创建values变量并将其设置为空数组。 第2行:循环数据表中的每个tr。 第3行:将tr中第一个td的文本添加到values数组中。 值现在由值填充。 您可以这样做:

var l1 = $('#datatable td:nth-child(2)').map(function() {
  return $(this).text();
}).get();
//l1 = [0, 23.6, 20.6]
这用于从元素中获取数组。您的主要问题是:第一个子项必须是父项的第一个子项,这并不意味着此类型的第一个子项,因此在您的代码中只有:第一个子项。相反,您需要第二个子元素,或者:nth-child2来获取第一个元素。

您可以这样做:

var l1 = $('#datatable td:nth-child(2)').map(function() {
  return $(this).text();
}).get();
//l1 = [0, 23.6, 20.6]

这用于从元素中获取数组。您的主要问题是:第一个子项必须是父项的第一个子项,这并不意味着此类型的第一个子项,因此在您的代码中只有:第一个子项。相反,您需要第二个子元素,或:nth-child2来获取第一个元素。

td:first-child将不匹配任何内容,因为所有元素都不是它们前面的第一个子元素。相反,使用td:nth-child2。

td:first-child将不匹配任何内容,因为没有一个元素是它们前面的第一个子元素。相反,使用td:nth-child2。

这将为所有td元素添加文本,而不仅仅是第一个。不,它不会-。文本将自动抓取第一个元素。这是不正确的,您的结果是:[09.7,23.618.0,20.616.1]…请参见:阅读描述。文本:获取匹配元素集中每个元素的组合文本内容,包括其子元素。这将为所有td元素添加文本,而不仅仅是第一个元素。不,不会-。文本将自动抓取第一个元素。这是不正确的,您的结果是:[09.7, 23.618.0, 20.616.1]…自己看:阅读描述。text:获取匹配元素集中每个元素的组合文本内容,包括它们的后代。DOH,我没有意识到TH是集合的一部分。这非常有效,谢谢。我正在尝试为jqPlot创建一个插件,将表转换为图表。@liz-啊,我想我认识到了这个标记,很高兴这对你有帮助。+1关于这个问题,按照它应该是的那样问:包括你尝试了什么和预期的结果,标记/代码是一个巨大的加号,使问题更容易回答,谢谢。DOH,我没有意识到TH是集合的一部分。这非常有效。谢谢。我正在尝试创建jqPlot的插件,可将表格转换为图表。@liz-啊,我想我认识到了这个标记,很高兴这对你有帮助。+1回答问题,问得一模一样:包括你尝试的内容和预期结果,标记/代码是一个巨大的优点,使问题更容易回答,谢谢。