You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态加载数组至Select2失败,请求排查操作问题

问题原因及修复方案

你的代码核心问题是初始化Select2的时机错误——你还没把创建好的<select>元素添加到DOM中,就用jQuery选择器$('#inputDow')尝试初始化Select2,此时jQuery找不到目标元素,自然无法加载数据。

另外还有两个细节可以优化:

  • 无需手动给元素添加select2类,Select2初始化时会自动添加该类
  • 基于已创建的DOM对象直接初始化Select2,比通过ID选择器更高效,还能避免ID冲突

修复后的完整代码

var dsDow = [
   { id: "0", text: "Sun" },
   { id: "1", text: "Mon" },
   { id: "2", text: "Tue" },
   { id: "3", text: "Wed" },
   { id: "4", text: "Thu" },
   { id: "5", text: "Fri" },
   { id: "6", text: "Sat" }
];

var inputDow = document.createElement("select");
inputDow.classList.add('form-select');
inputDow.setAttribute('id', 'inputDow');
inputDow.setAttribute('name', 'inputDow');
inputDow.setAttribute('tabindex', '1');
inputDow.setAttribute('multiple', 'multiple');
inputDow.setAttribute('required', 'true');

// 先将元素插入DOM树
action_container.appendChild(inputDow);

// 再初始化Select2,也可直接用$(inputDow)替代ID选择器
$('#inputDow').select2({
   data: dsDow,
   tags: true,
   placeholder: "Select Days",
   escapeMarkup: function (markup) {
       return markup;
   }
});

核心修复要点

  • 调整执行顺序:必须先把元素添加到DOM,再调用select2()进行初始化
  • 可选优化:使用$(inputDow).select2(...)直接基于创建好的DOM对象初始化,省略ID查找步骤

内容的提问来源于stack exchange,提问作者Don2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:20:07