Javascript 是否有可供选择的加载方式<;选择>;?

Javascript 是否有可供选择的加载方式<;选择>;?,javascript,html,jinja2,selectize.js,Javascript,Html,Jinja2,Selectize.js,我使用jinja模板基于模板变量字典编译多个选择块的形式,如下所示: {% for key, value in some_template_variable_dict.items %} <select id="{{ key }}_selector" name="key"> {% for item in values %} <option value="{{ item }}">{{ item }}<

我使用jinja模板基于模板变量字典编译多个选择块的形式,如下所示:

{% for key, value in some_template_variable_dict.items %}
        <select id="{{ key }}_selector" name="key">
            {% for item in values %}
                <option value="{{ item }}">{{ item }}</option>
            {% endfor %}
        </select>
{% endfor %}
select块没有onload事件处理程序,我无法将其放入常规$(document).ready()中;部分,因为选择块及其id-s的确切列表取决于用户选择。还有一个选项,其中一些选项需要稍微不同版本的selectize包装(例如,不允许只使用一个选定选项等),因此我也无法在每个选定项上启动它


一个有效的解决方案是在for循环中插入一个脚本标记,但我不喜欢它太乱。

因为您的数据是动态生成的,所以您可以使用一个类来标记每个select选项,该类指定它的类型,如
class=“type1”
class=“type2”
,以便以后您可以从JS端对它们执行单独的操作。或者您可以使用属性来区分它们。

您可以使用
document.querySelectorAll('select')
来获取所有
元素的列表,而不是使用“按id选择”。谢谢,这确实有效,而且看起来比我的解决方案要好得多。
function selectizeSingleChoice(selector) {
    $('#'+selector).selectize({
        sortField: 'text',
        maxItems: 1,
        create: false,
        highlight: true,
        openOnFocus: true
    });
}