我可以在select元素的选项中使用HTML标记吗?

tru*_*one 45 html javascript css jquery

HTML select元素的选项是否可以包含HTML标记?

例如,给出以下代码:

 <select>
    <option value="one"><b>one is bold</b></option>
    <option value="two">two has some <span style='color:red;'>red</span> text</option>
    <option value="three">three is just normal</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

我想要用HTML实际渲染的选项.在这个应用程序中,我可以使用HTML,CSS,JavaScript(包括jQuery).HTML本身是通过Django(django.form.fields.select)呈现的.

mea*_*gar 69

不,你不能这样做.<option>标签不能包含任何其他标签.

  • 至少在Chrome中,<option>标记可以包含<script>标记.它们的行为类似于普通的<script>标记,这意味着它们将不可见,但它们将执行.这让我有些惊愕. (3认同)
  • @SamKauffman这是非法加价.仅仅因为Chrome会试图混淆它并不意味着"<option>标签可以包含<script>标签".你不能依赖这种行为. (2认同)
  • 实际上我试图阻止这种行为,这是一种潜在的注入攻击向量.事实证明只需要简单的服务器端HTML转义.之前我很困惑,因为我没有意识到Chrome在Elements视图中显示的是_after_替换HTML实体. (2认同)