如何使用循环根据条件向html标签添加属性
Posted
技术标签:
【中文标题】如何使用循环根据条件向html标签添加属性【英文标题】:How to add attribute to html tag based on condition using loop 【发布时间】:2021-09-06 01:44:51 【问题描述】:我的任务是根据我正在迭代的集合的当前元素,从 <select>
元素中预先选择一些条目。
我们使用 JSF 来渲染 html,并且有一个循环遍历某个集合。在迭代过程中基于当前项,我必须在<option>
标签中添加或不添加selected
属性。
问题是selected
不带任何值,它只需要出现在标签中,以便在<select>
标签中预先选择项目。我试过selected=true/false
,但没有用。所以这就是我尝试过的,JSF 返回解析异常:
<select value="#...">
<c:forEach items="#registrationManagementBean.offersMap" var="entry" rowIndexVar="rowIndex">
<option #registrationManagementBean.offerId == entry.key? 'selected' : '' value="#entry.key">#entry.value</option>
</c:forEach>
</select>
这会产生:
Error Traced[line: 213] 元素类型“option”必须后跟属性规范“>”或“/>”。
当我尝试selected = #registrationManagementBean.offerId == entry.key? 'true' : 'false'
时,它可以正确呈现,但它不起作用。
有没有办法实现这个需求?
【问题讨论】:
【参考方案1】:以下内容在 XML 中无效,这导致了您看到的错误:
<option selected>Value</option>
应该是:
<option selected="selected">Value</option>
话虽如此,在使用 JSF 时渲染自己的 select
元素是很奇怪的。以应有的方式使用 JSF,并使用 h:selectOneMenu
呈现 select
元素。使用 JSF 组件,值绑定和验证等内容很容易配置。
另见:
How to populate options of h:selectOneMenu from database? For HTML attributes with only one possible value, can the value be omitted?【讨论】:
感谢您的回答。那么如何使用h:selectOneMenu
预先选择一些<option>
条目?
只需将其值设置为所需的值。以上是关于如何使用循环根据条件向html标签添加属性的主要内容,如果未能解决你的问题,请参考以下文章
:9.HTML如何在网页中添加图片(img标签使用方法,以及img标签属性:altheightwidth);图片格式选择