【发布时间】:2020-11-25 02:50:34
【问题描述】:
我已经使用 select2 在 select 的选项中呈现了 html 标签,如下所示:
$('#select2colors').append($('<option>', {
value: color,
text: `<i class="fas fa-square" style="color: ${color}; width:100%;"></i>`
}));
$("#select2colors").select2({
escapeMarkup: function(markup) {
return markup;
}
返回给我的是这样的:
问题:现在我正在尝试做同样的事情,同样的逻辑,但没有append() 部分。但不起作用,我正在寻找一种方法来做到这一点,但我没有找到任何东西。我正在做的是这样的:
<select class="form-control form-control-sm" id="select2colors">
@foreach($colors as $color)
<option value="#{{ $color }}">
{{ htmlentities("<i class='fas fa-square' style='color: #".$color."; width:100%;'></i>") }}
</option>
@endforeach
</select>
$("#select2colors").select2({
escapeMarkup: function(markup) {
return markup;
}
我认为它的工作原理相同,但事实并非如此。 <i> 只是消失了,根本没有被渲染。有谁知道我怎样才能做到这一点才能和以前一样?
我得到的是,HTML 没有呈现:
【问题讨论】:
-
为什么不使用追加?
-
第一种方式是我的创建视图,第二种方式是我的编辑视图,我在那个视图中有数据,因为我使用
@foreach,而且我正在使用外部 js 文件而且我无法将数据发送到这些文件。 -
删除错误抑制后会发生什么?
-
不是
width=100%;,应该是width:100%;里面的style属性 -
@L.Flor 当附加
<i>.....</i>是一个文本.. 而在第二个代码<option><i>...</i></option>i这里是一个html .. 所以尝试找到一种方法将<i>....</i>转换为字符串/文本,我认为一切都会好起来的
标签: jquery laravel jquery-select2