如何使用纯Javascript

时间:2016-07-27 17:33:58

标签: javascript jquery csv

根据反馈,我原来的问题没有意义。 试图查看是否有另一种方法可以使用Papa解析来读取CSV。

我目前的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="./papaparse.min.js"></script>

<script>
  var data;

 // Target first (and only) file selected
  function handleFileSelect(evt) {
    var file = evt.target.files[0];

 // Parse the file
    Papa.parse(file, {
      header: true,
      download: true,
      dynamicTyping: true,
      complete: function(results) {
        data = results;
        console.log(data);
      }
    });
  }

 // Run handleFileSelect function when document is ready
  $(document).ready(function(){
    $("#testCsv").change(handleFileSelect);
  });
</script>

 <!--File button to upload file-->
<input type="file" id="testCsv" name="files"/>
编辑:显然我需要根据下选票做更多的研究。对不起,这个东西很新。我的下一次尝试:

var data;

function parseCSV(file) {
    Papa.parse(file, {
        header: true,
        download: true,
        dynamicTyping: true,
        complete: function(results) {
            data = results;
            console.log(results); // results appear in dev console
        }
    });
}
parseCSV(document.getElementById("testCSV").files[0]);

返回错误:

ReferenceError: document is not defined

进行更多研究。

2 个答案:

答案 0 :(得分:2)

根本没有在那里使用jQuery。所有你使用的jQuery都是在运行代码之前等待DOM加载,并挂钩事件处理程序。

您可以通过简单地将脚本标记移动到HTML的末尾(即结束</body>标记之前)来完成第一个(等待)。

您可以使用addEventListener

在任何模糊的现代浏览器上进行第二步
document.getElementById("testCsv").addEventListener("change", handleFileSelect, false);

如果你需要支持像IE8这样没有addEventListener的过时浏览器,或者更多现代浏览器,它们有时会蹒跚而行,就像过时的浏览器一样(IE9-IE11),this answer有一个功能您可以使用addEventListener或旧的MS特定attachEvent

答案 1 :(得分:-2)

编写自己的Parse函数。 该函数应该采用输入字符串(CSV内容)并将其拆分为&#39;,&#39;字符/字符串。

阅读第一行(直到行尾和回车)。这是你的专栏。 所有其他行都是您的数据。

有意义吗?