1

我正在使用jquery.csv-0.71.min.jslib 加载 csv 文件并将其转换为数组。但是,在加载我的网页时:

<script src="assets/lib/jquery/dist/jquery.min.js"></script>
<script src="assets/lib/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- Jquery-csv -->
<script src="assets/js/jquery.csv-0.71.min.js"></script>
<script>
(function() {
            var data; 
            var url = 'data/data.csv';
            function makeRequest(url) {
                var xhr = new XMLHttpRequest();
                xhr.open('GET', url);
                xhr.onload = function() {
                    if (xhr.readyState === 4 && xhr.status === 200) {/*run code*/}
                };
                xhr.send(null);
            }
        })();

        data = CSV.toArrays(xhr.responseText);
        console.log(data);
</script>

我进入控制台:

ReferenceError: CSV is not defined at 'data = CSV.toArrays(xhr.responseText);'

任何建议我做错了什么?

感谢您的回复!

更新

我将我的代码放入文档读取功能中,但是,我仍然得到与上述相同的错误。

$(document).ready(function() {
    (function() {
        var data;
        var url = 'data/data.csv';
        function makeRequest(url) {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', url);
            xhr.onload = function() {
                if (xhr.readyState === 4 && xhr.status === 200) {/*run code*/
                }
            };
            xhr.send(null);
        }
    })();

    data = CSV.toArrays(xhr.responseText);
    console.log(data);
});
4

1 回答 1

2

您的代码在浏览器加载CSV脚本之前执行。包装你的 JavaScript 代码

$( document ).ready(function() {
  // PUT YOUR JavaScript CODE HERE
});

这将使浏览器等待,直到加载所有脚本,并且仅在执行代码之后。

您可以在此处查看 jquery csv 的文档。它说你应该调用这样的方法:

$.csv.toArrays(csv);
于 2014-11-14T15:18:41.907 回答