【问题标题】:Getting rid of TypeError while initializing HandsOntable在初始化 HandsOntable 时摆脱 TypeError
【发布时间】:2016-10-04 22:42:01
【问题描述】:

我正在检查Handsontable for developers 我的一个项目。我试图按照他们的教程初始化一个可动手做的对象。但我不断收到 TypeError

我的代码在下面-

var data = [
   ["","Ford","Volvo","Toyota","Honda"],
   ["2016", 10, 11, 12, 13],
   ["2017", 20, 11, 14, 13],
   ["2018", 30, 15, 12, 13]
];

var container = $("#example");
var hot = new Handsontable(container, {
   data: data,
   rowHeaders: true,
   colHeaders: true
});
<link href="http://docs.handsontable.com/0.25.0/bower_components/handsontable/dist/handsontable.full.css" rel="stylesheet"/>
<script src="http://docs.handsontable.com/0.25.0/bower_components/handsontable/dist/handsontable.full.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js"></script>

<div id="example"></div>

演示 - https://jsfiddle.net/x1w95ndx/

过去一小时我一直在努力寻找解决方案。如果有人告诉我正确的方向,这对我真的很有帮助。

【问题讨论】:

    标签: javascript jquery handsontable


    【解决方案1】:

    问题是您将jQuery collection(一个类似数组的对象,它可以包含多个元素并提供像.css.attr 这样的jQuery 方法)传递给Handsontable 构造函数,而它需要一个普通的DOM 元素。

    替换:

    var container = $("#example");
    

    与:

    var container = $("#example")[0];
    

    或者:

    var container = document.getElementById("example");
    

    工作示例:

    var data = [
       ["","Ford","Volvo","Toyota","Honda"],
       ["2016", 10, 11, 12, 13],
       ["2017", 20, 11, 14, 13],
       ["2018", 30, 15, 12, 13]
    ];
    
    var container = $("#example")[0];
    var hot = new Handsontable(container, {
       data: data,
       rowHeaders: true,
       colHeaders: true
    });
    <link href="http://docs.handsontable.com/0.25.0/bower_components/handsontable/dist/handsontable.full.css" rel="stylesheet"/>
    <script src="http://docs.handsontable.com/0.25.0/bower_components/handsontable/dist/handsontable.full.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js"></script>
    
    <div id="example"></div>

    【讨论】:

    • 谢谢我的问题解决了。我只是有一个问题。你能解释一下这段代码吗 - $("#example")[0]; jquery 是否将 DOM 保存在数组中?
    • @ni8mr 这是一个类似数组的对象,可以包含多个元素,并暴露了.css.attr等方法。
    • 好的。谢谢。能不能给我一篇相关的文章。 (我知道我问的很多。但这对我来说似乎很有趣。我是 JS 和 jquery 的新手。)
    • @ni8mr 下面是关于该对象的一些基本信息:learn.jquery.com/using-jquery-core/jquery-object 不幸的是,我没有提出真正的技术性文章。
    • 好的。那个链接就够了。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多