【发布时间】:2020-10-27 16:31:45
【问题描述】:
我正在尝试以编程方式设置某些 select2 选项的背景颜色。由于某种原因,它似乎不起作用。我根本没有看到背景颜色是红色的。我真正想做的是设置select2呈现为li的背景颜色,并且是formatText()函数中span标签的父级。
你在这里看到的那些选项是黄色的,我希望整行而不是只是文本是黄色的。
我还想在我的家庭下拉菜单中设置各个行的样式,以使其与我的产品下拉菜单中的颜色保持一致。
我有两段代码我认为应该这样做。这是小提琴 - https://jsfiddle.net/jamiebrs/8axy7123/
const productsConfig = {
width: "100%",
theme: 'bootstrap4',
placeholder: "Select item",
allowClear: true,
templateSelection: formatText,
templateResult: formatText,
data: dataitems2,
escapeMarkup: function(m) {
return m;
}
};
function formatText (icon) {
if(icon.badge == undefined){
return $('<span>' + icon.text + '</span>');
} else {
return $('<span><span class="badge" style"background-color:red">'+ icon.badge.length + '</span> ' + icon.text + '</span>');
}
};
和....
$('#products').select2(
Object.assign({},
productsConfig,
{data: null}
)
);
$('#fam').on('change', function() {
// get selected value from the #fam select2
const selected = $(this).val();
// get the new products config (products config + data options)
const newProductsConfig = Object.assign({},
productsConfig,
{data: productOptions[selected]}
);
// destroy the existing products select2 and re-initialize
$('#products').empty().select2('destroy').select2(newProductsConfig);
$('#products').val(null).trigger('change')
});
【问题讨论】:
标签: javascript jquery forms jquery-select2