使用es6模板字符串实现循环,做判断
在模板字符串中,遍历数组,生成循环结构
var selectList= [
{value: 'text',label: '文本框'},
{value: 'checkbox',label: '复选框'},
{value: 'radio', label: '单选框'},
{value: 'textarea',label: '文本域'},
{value: 'select',label: '下拉框'},
{value: 'files',label: '附件'},
{value: 'label',label: '不可编辑文本框'},
{value: 'datetime',label: '日期选择器'}
]
var html = `<table border="1" cellpadding="1" cellspacing="1" style="width: 90%;margin: 0">
<tbody>
${arrChecked.map((item,index) => {
selectList.forEach(_item => {
if (item.Type == _item.value) {
item.label = _item.label
}
})
return (index%2==0 ? '<tr>' : '')+`<td style="width: 130px; text-align: right;">${item.IndexName +':'+' '}</td>
<td style="width: 100px;"><input value=${item.label || ''} /></td>`+(index%2!=0 ? '</tr>' : '')
}).join('')}
</tbody>
</table>
<p> </p>`
index %2 == 0 进行判断是否换行显示,使一行显示两个输入框
实现效果:
注意:
- 主要是map的使用,需要用map,将值return出去,如果使用foreach则不报错一直返回undefined
- 不添加 join(")时,在 标签中间会多一个逗号,这是因为当大括号中的值不是字符串时,会将其转为字符串.