首页 > 解决方案 > 循环遍历数据表列以构建字符串

问题描述

我正在尝试遍历表格列并建立一个字符串。

这是我到目前为止所拥有的:

$(".ConvertSQL").click(function () {

        var values

        $(".TableQuery tr").each(function () {

            $('td', this).each(function () {
                values = value + ',' + value;

                alert(values)
            })

        })

    });

收到错误:

我的警报显示一条消息“未定义”,并在单元格中有数据的次数内不断重复此消息

我还是新手,所以不完全理解发生了什么。

目前的设置不会遍历一列,我认为它会遍历表中的每个单元格,因此也需要更改它

标签: jqueryhtml

解决方案


您的逻辑中的问题是,尽管您定义value了您从未真正将其设置为保存任何值,因此它仍然存在undefined

从代码的上下文来看,您似乎正在尝试从td元素中获取文本内容,因此您可以使用该text()方法:nth-child()来获取td所需列的。

另请注意,为了使这更容易,您可以使用map()构建一个值数组,然后join()形成单个字符串。尝试这个:

$(".ConvertSQL").click(function() {
  var str = $(".TableQuery td:nth-child(1)").map((i, e) => $(e).text()).get().join(' ');
  console.log(str);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="TableQuery">
  <tbody>
    <tr>
      <td>Foo</td>
      <td>Bar</td>
    </tr>
    <tr>
      <td>Fizz</td>
      <td>Buzz</td>
    </tr>
  </tbody>
</table>

<button class="ConvertSQL">Click me</button>


推荐阅读