javascript - 数据没有被推送到数组

标签 javascript jquery arrays datatables

我已经能够将 JSON 数据(本地文件)显示到表中的每一行中,并且当选中数据的相应复选框时,我想将这些选定的值推送到数组中。最终目标是在 div 中显示数组,但直到我能够看到数组正在填充为止。

JS 片段:

($("#km-table-id tbody tr")).append($("<input />", {"type": "checkbox"}).addClass("checkbox-class"));

let table = $("#km-table-id").DataTable();
    let favesArr = [];

    $(".checkbox-class").on("click", "tr", function() {
      let data = table.row(this).data();
      for (var i = 0; i < favesArr.length; i++) {
        favesArr.push($(data).text());
        $("#myFave.hs-gc-header").append(favesArr[i]);
      }      
      console.log(data); // this was showing the selected data a short time ago, but not anymore  

    });

    console.log(favesArr); // only showing empty

最佳答案

首先,最后一行将始终打印一个空数组,因为您只是将其填充到事件处理程序中。

其次,您正在使用i < favesArr.length作为你的循环条件。 favesArr如果没有填写代码的其他部分,这里还是空的。因此循环体永远不会被执行。您可能想要data.length在这里。

最后但并非最不重要的一点是,您可能只想推送 data[i]而不是整个数组进入你的 favesArray .

关于javascript - 数据没有被推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54371736/

相关文章:

javascript - 将数据存储在 req 与 res 中

java - 打印数组的总和

arrays - 如何将数组元素按顺序保存到Core Data中

javascript - 如何从轮播中获取id并显示特定图像的信息?

javascript - 如何正确地为我的变量创建 for 循环?

javascript - Casperjs 单击无法打开 'download csv' 操作系统窗口

jquery 取消选中带有链接的复选框

jquery - "jQuery way"仅用 HTML 和文本的混合替换文本节点?

PHP 在 while 循环后回显数组值

javascript - Jquery 表排序器不工作,表头没有响应