jquery - 选择选项内的 HTML 文本未呈现
问题描述
我在 select 的选项中渲染了 html 标签select2
,如下所示:
$('#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 没有呈现:
解决方案
我在启动时所做的是直接放入 HTML,我必须将 HTML 转换为纯文本,就像 @Mohamed-Yousef 评论一样。首先我使用htmlentities()
但我需要的是html_entity_decode()
,在这里解释:
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
?>
推荐阅读
- android - 类型不匹配:推断类型是上下文?但上下文是预期的 - Kotlin
- scala - 类型安全配置未在 sbt 程序集中解析
- ios - 改变饼图swift 4中各个部分的宽度
- entity-framework - 在计算属性中使用委托反编译器和比较
- android - Flutter 无法从 app.apk 读取清单信息
- terraform - 如何使用一个 terraform 脚本和不同的变量值管理多个不同环境的部署
- flutter - 如何使用 image_picker 依赖项在颤振中将图像上传到 sqlite 数据库
- keyboard - 使用外接键盘在 Mac 上编程
- reactjs - React JS:在父组件中调用子组件方法(使用打字稿反应)
- php - 在刀片 php 中将英文日期名称转换为日文