有条件地将标签选项参数添加到select2

扎克·史密斯

我在页面上有多个元素,这些元素触发将select2加载到该元素。我试图有条件地检查该元素是否具有某个类,如果可以,请添加该tag选项;否则不要。我以为这样的事情会起作用,但事实并非如此:

$('.element_to_add_select_two_on').select2({
    tags:function(element) {
        return (element.className === 'classname_i_am_targeting');
    },
});

我在这里想念什么?我正在接受以下自助服务,以使其达到目标并加载:

$('.element_to_add_select_two_on').each((index,element) => {
    let showTags = false;

    if ($(element).attr('class').split(' ').includes('classname_i_am_targeting')) {
        showTags = true;
    }

    $(element).select2({
        tags:showTags,
    });
});
杰森·罗曼(Jason Roman)

您的第一次尝试有一些问题。首先,tags当您需要的是函数结果时,就将tags其定义为函数,因为需要将其定义为布尔值truefalse另一个是在.select2()通话中,您无法以$('.element_to_add_select_two_on')您认为的方式访问通话元素这不是您正在监听的事件,它是一个函数调用,要求通过其配置传递对象。

您已经说明了第二种方法有效,但是可以使用jQueryhasClass()函数进行简化

$('.element_to_add_select_two_on').each((index, element) => {
  $(element).select2({
    tags: $(element).hasClass('classname_i_am_targeting'),
  });
});

但是,有一种更简单的方法来执行所有这些操作,并且它更加灵活,并且已经通过data- *属性的方式内置到select2中(请注意,您需要jQuery> 1.x)。您可以简单地将其添加data-tags="true"select要启用标签的任何元素中。这些将覆盖初始化select2时使用的所有配置选项以及所有默认设置:

<select data-tags="true">
    ...
</select>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有条件地将选项添加到列表

使用jquery根据字符数有条件地将文本添加到标题标签

有条件地添加到地图

使用列表推导有条件地将 1 或 2 个项目添加到列表中

有条件地将RouterLink或其他属性指令添加到Angular 2中的元素

有条件地将formGroup添加到另一个formGroup angular2

如何有条件地将“按钮”添加到“工具栏”“表单”“组件”?

有条件地将CircleMarkers添加到传单

使用jq有条件地将元素添加到json数组

如何有条件地将元素添加到 std::array - C++11

有条件地将文件添加到C ++项目中的库

有条件地将12小时添加到列中

有条件地将列和值添加到Spark Rows

打字稿:有条件地将项目添加到对象

定义列表时有条件地将项目添加到列表?

有条件地将字母添加到字符串

R - 如何有条件地将连续列添加到数据框?

Spark:有条件地将列添加到数据框

有条件地将列添加到 dplyr R 中的 groupby

有条件地将JSF组件添加到翻译字符串中

使用Polymer将CSS类有条件地添加到元素

有条件地将target =“ _ blank”添加到Angular JS的链接

有条件地将多个类添加到元素

如何有条件地将小部件添加到列表?

Scala:将项目添加到序列中或有条件地合并序列

根据函数变量的值有条件地将层添加到gglplot中

有条件地将类添加到父类

有条件地通过jQuery将类添加到图像

有条件地将属性指令添加到ng-repeat