Materialize Select JavaScript:无法初始化。formSelect不是函数。append不是函数

Materialize Select JavaScript:无法初始化。formSelect不是函数。append不是函数,javascript,materialize,Javascript,Materialize,从下面代码段中的注释可以看出,我已经尝试了所有有意义的方法。我发现Materialize文档非常陈旧,缺乏细节和工作代码示例。我在这里找到了一两篇文章,我正在尝试(参见注释代码)这些建议。我做不到 你能看出我做错了什么吗 谢谢,谢谢,谢谢你的帮助:-) 这里是Html内容 <div class="container"> <div class="row"> <div class="input-field col s12">

从下面代码段中的注释可以看出,我已经尝试了所有有意义的方法。我发现Materialize文档非常陈旧,缺乏细节和工作代码示例。我在这里找到了一两篇文章,我正在尝试(参见注释代码)这些建议。我做不到

你能看出我做错了什么吗

谢谢,谢谢,谢谢你的帮助:-)

这里是Html内容

<div class="container">
    <div class="row">
        <div class="input-field col s12">
            <select id="collName">
                <option>( Choose collection... )</option>
            </select>
        </div>
        <div class="input-field col s12">
            <select id="query">
                <option>( Choose query... )</option>
            </select>
        </div>
    </div>
    <div class="row">
        <div id="status" class="col s12">Ready</div>
    </div>
    <div class="row">
        <div id="collections" class="col s4">4 columns</div>
        <div id="container" class="col s8"></div>
    </div>
</div>

(选择收藏…)
(选择查询…)
准备好的
4列
下面是JavaScript代码

document.addEventListener('DOMContentLoaded', function () {
    // const elems = document.querySelectorAll('select');
    // const options = {};
    // const instances = M.FormSelect.init(elems, options);

    const optionsColls = [];
    config.collections.forEach(c => {
        optionsColls.push("<option>" + c + "</option")
    });

    const elemCollName = document.getElementById('collName');
    collName = M.FormSelect.init(elemCollName, {});
    //collName = M.FormSelect.getInstance(elemCollName);
    // collName.empty();
    collName.formSelect();
    collName.append(optionsColls);

    // config.collections.forEach(coll => {
    //  collName.options.add(new Option(coll, coll));
    // });

});
document.addEventListener('DOMContentLoaded',函数(){
//常量elems=document.querySelectorAll('select');
//常量选项={};
//const instances=M.FormSelect.init(元素、选项);
const optionsColls=[];
config.collections.forEach(c=>{

选项colls.push(“+c+”加载/初始化选择时,以下选项确实有效

document.addEventListener('DOMContentLoaded', function () {
    const elemCollName = document.getElementById('collName');
    config.collections.forEach(c => {
        elemCollName.options.add(new Option(c, c));
    });
    M.FormSelect.init(elemCollName);
});

当您在事件中动态加载选择选项列表时,这似乎也可以正常工作。只要在修改选择后始终调用.init()。

这个错误仅仅意味着
“FormSelect”
不作为“M”对象的属性存在。您是否尝试过执行
控制台.log(M)
验证它是否是您认为它是的对象?(还要注意,在问题标题中您写了“formSelect”,但在代码中是“formSelect”;这些是不同的。)谢谢@Pointy,是的,M被物化加载。对于不正确的小写f/f部分,很抱歉。还有其他建议吗?:-)好的,等一下;显然有
FormSelect
对象,但您确实正在调用
.FormSelect()
.Hmm…是的,我正在尝试许多不同的代码组合,但没有任何东西像其他SO帖子中所说的那样有效。谢谢您的帮助!嗯,
.FormSelect()
是“旧的”“并打算与jQuery一起使用;您似乎没有这样做。