es6模板字符串中包含动态数据渲染的select下拉框

博客介绍了使用ES6进行ajax请求数据循环拼接,包括三目运算符实现复选框选中状态、下拉框渲染数据并默认选中值。因IE11兼容性问题,考虑使用JS字符串拼接。还提及了input复选框和下拉框默认选中、渲染元素绑定事件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面就是我的ajax请求数据循环拼接


 

function getconfigureData(){

             $.ajax({

                 type: "GET",

                 url: ctx + "leaderApproval/automaticApproval",

                 dataType: 'json',

                 success: function(res) {

                    if(res.code==0){

                        var automaticApprovals = res.automaticApprovals;

                        var servicePeriod = res.servicePeriod;

                        var sysUsers = res.sysUsers;

                        var num = res.num;

                        for(var i = 0;i<automaticApprovals.length;i++){

                            var obj=`

                 <div class="configure_item">

                     <div class="configure">

                             <div class="configure_content">

                             <div class="configure_name">

                             <input type="checkbox" ${automaticApprovals[i].status== '0'?'':'checked="checked"'} name="configureCheck" data-id="${automaticApprovals[i].id}" class="configureCheck">

                             <span>${automaticApprovals[i].configurationName}</span>

                             </div>

                             <div class="configure_changeCon"><a class="edit_configure">修改配置</a><span class="del" data-id="${automaticApprovals[i].id}">删除</span></div>

                     </div>

                     <div class="configure_condition">

                             <label>筛选条件:</label>

                     <div>审核员:<span>${automaticApprovals[i].loginName=='0'?'不限':automaticApprovals[i].loginName}</span></div>

                     <div>服务期限:<span>${automaticApprovals[i].servicePeriod=='0'?'不限':automaticApprovals[i].servicePeriod}</span><span>${automaticApprovals[i].servicePeriod!=0 && automaticApprovals[i].servicePeriod!= '' ?"个工作日":""}</span></div>

                     <div>剩余天数:<span>${automaticApprovals[i].minTime}</span><span>${automaticApprovals[i].maxTime?"至":""}</span><span>${automaticApprovals[i].maxTime}</span><span>${automaticApprovals[i].maxTime?"个工作日":""}</span></div>

                     </div>

                     <div class="configure_time">

                             <label>审核时间:</label>

                     <div>进入领导审核列表<span>${automaticApprovals[i].approvalTime}</span>分钟后自动通过审核</div>

                     </div>

                     </div>

                     <div class="configure configure_new" hidden="hidden">

                             <div class="configure_content">

                             <div class="configure_name">

                                 <span>${automaticApprovals[i].configurationName}</span>

                                 <input type="text" value="${automaticApprovals[i].configurationName}" hidden="hidden" class="name nameold" maxlength="30">

                             </div>

                             <div class="configure_changeName"><a>更改名称</a></div>

                     </div>

                     <div class="configure_condition_new">

                             <label>筛选条件:</label>

                     <div>

                     <span class="condition_tit">审核员:</span>

                     <select name="auditor" class="select_condition auditor">

                             <option value="">请选择</option>

                             <option value="0" ${automaticApprovals[i].adminId== '0'?'selected="selected"':''}>不限</option>

                             ${sysUsers.map(sysUsers=>`

                        <option ${automaticApprovals[i].adminId== sysUsers.userId?'selected="selected"':''} required="required" value="${sysUsers.userId}">${sysUsers.loginName}</option>

                             `).join('')}

                             </select>

                             </div>

                             <div>

                             <span class="condition_tit">服务期限:</span>

                     <select name="servicePeriod" class="select_condition servicePeriod">

                             <option value="">请选择</option>

                             <option value="0" ${automaticApprovals[i].servicePeriod== '0'?'selected="selected"':''}>不限</option>

                             ${servicePeriod.map(servicePeriod=>`

                                <option ${automaticApprovals[i].servicePeriod == servicePeriod.dictLabel?'selected="selected"':''} required="required" value="${servicePeriod.dictLabel}">${servicePeriod.dictLabel}</option>

                                    `).join('')}

                             </select>

                             </div>

                             <div style="position: relative;">

                             <span class="condition_tit">剩余天数:</span>

                     <input type="number" class="startDay" value="${automaticApprovals[i].minTime?automaticApprovals[i].minTime:""}" />

                             <span style="width: 10px;">-</span>

                             <input type="number" class="endDay" value="${automaticApprovals[i].maxTime?automaticApprovals[i].maxTime:""}" />

                             <label class="error remainday-error" style="left: 490px;top: -2px;color: #ef392b;" hidden="hidden">

                             <i class="fa fa-times-circle"></i><span>请输入正确的时间段</span>

                             </label>

                             </div>

                             </div>

                             <div class="configure_time" style="position: relative;">

                             <label>审核时间:</label>

                     <div><input type="number" class="time changeTime" value="${automaticApprovals[i].approvalTime}">分钟后自动通过领导审核</div>

                     <label class="error time-error" style="left: 300px;top: 8px;color: #ef392b;" hidden="hidden">

                        <i class="fa fa-times-circle"></i>

                        <span></span>

                    </label>

                             </div>

                             <div class="configure_btn"><button class="btn btn-success cancel">取消</button><button class="btn btn-primary save" data-id="${automaticApprovals[i].id}">保存</button></div>

                     </div>

                </div>

            `

                            $("#configures").append(obj)

                        }


                    }

                 }

             });

         }

三目运算符 实现 复选框是否选中状态

<input type="checkbox" ${automaticApprovals[i].status== '0'?'':'checked="checked"'} name="configureCheck" data-id="${automaticApprovals[i].id}" class="configureCheck">

 

下拉框渲染数据并默认选中一个值

<select name="auditor" class="select_condition auditor">

      <option value="">请选择</option>

       <option value="0" ${automaticApprovals[i].adminId== '0'?'selected="selected"':''}>不限</option>

      ${sysUsers.map(sysUsers=>`

        <option ${automaticApprovals[i].adminId== sysUsers.userId?'selected="selected"':''} required="required"                        value="${sysUsers.userId}">${sysUsers.loginName}</option>

         `).join('')}

         </select>

以上是es的 由于ie11兼容不行  所以考虑js字符串拼接

function getconfigureData(){
				$.ajax({
					type: "GET",
					url: ctx + "leaderApproval/automaticApproval",
					data:{data:new Date()},
					dataType: 'json',
					success: function(res) {
						if(res.code==0){
							var automaticApprovals = res.automaticApprovals;
							var servicePeriod = res.servicePeriod;
							var sysUsers = res.sysUsers;
							var num = res.num;
							for(var i = 0;i<automaticApprovals.length;i++){
								var obj='<div class="configure_item">\n' +
										'<div class="configure">\n' +
										'<div class="configure_content">\n' +
										'<div class="configure_name">\n' +
										'<input type="checkbox" ' +(automaticApprovals[i].status=="0"?"":"checked='checked'" )+ 'name="configureCheck" data-id="'+automaticApprovals[i].id+'" class="configureCheck">\n' +
										'<span>'+automaticApprovals[i].configurationName+'</span>\n' +
										'</div>\n' +
										'<div class="configure_changeCon"><a class="edit_configure">修改配置</a><span class="del" data-id="'+automaticApprovals[i].id+'">删除</span></div>\n' +
										'</div>\n' +
										'<div class="configure_condition">\n' +
										'<label>筛选条件:</label>\n' +
										'<div>审核员:<span>'+(automaticApprovals[i].loginName=="0"?"不限":automaticApprovals[i].loginName)+'</span></div>\n' +
										'<div>服务期限:<span>'+(automaticApprovals[i].servicePeriod=="0"?"不限":automaticApprovals[i].servicePeriod)+'</span><span>'+(automaticApprovals[i].servicePeriod!="0"&& automaticApprovals[i].servicePeriod!=""?"个工作日":"")+'</span></div>\n' +
										'<div>剩余天数:<span>'+automaticApprovals[i].minTime+'</span><span>'+(automaticApprovals[i].minTime?"至":"")+'</span><span>'+automaticApprovals[i].maxTime+'</span><span>'+(automaticApprovals[i].minTime?"个工作日":"")+'</span></div>\n' +
										'</div>\n' +
										'<div class="configure_time">\n' +
										'<label>审核时间:</label>\n' +
										'<div>进入领导审核列表<span>'+automaticApprovals[i].approvalTime+'</span>分钟后自动通过审核</div>\n' +
										'</div>\n' +
										'</div>\n' +
										'<div class="configure configure_new" hidden="hidden">\n' +
										'<div class="configure_content">\n' +
										'<div class="configure_name">\n' +
										'<span class="configure_oldname_static">'+automaticApprovals[i].configurationName+'</span>\n' +
										'<input type="text" value="'+automaticApprovals[i].configurationName+'" hidden="hidden" class="name nameold" maxlength="30">\n' +
										'</div>\n' +
										'<div class="configure_changeName"><a>更改名称</a></div>\n' +
										'</div>\n' +
										'<div class="configure_condition_new">\n' +
										'<label>筛选条件:</label>\n' +
										'<div>\n' +
										'<span class="condition_tit">审核员:</span>\n' +
										'<select name="auditor"  class="select_condition auditor">\n' +
										'<option value="">请选择</option>\n' +
										'<option value="0" ' +(automaticApprovals[i].adminId=="0"?"selected='selected'":"" )+ ' >不限</option>'+getUserOptions(sysUsers,automaticApprovals[i].adminId)+'\n' +
										'</select>\n' +
										'</div>\n' +
										'<div>\n' +
										'<span class="condition_tit">服务期限:</span>\n' +
										'<select  name="servicePeriod" class="select_condition servicePeriod" >\n' +
										'<option value="">请选择</option>\n' +
										'<option value="0" ' +(automaticApprovals[i].servicePeriod=="0"?"selected='selected'":"" )+ '>不限</option>'+getOptions(servicePeriod,automaticApprovals[i].servicePeriod)+'\n' +
										'</select>\n' +
										'</div>\n' +
										'<div style="position: relative;">\n' +
										'<span class="condition_tit">剩余天数:</span>\n' +
										'<input type="number"  class="startDay" value="'+(automaticApprovals[i].minTime?automaticApprovals[i].minTime:"")+'"  />\n' +
										'<span style="width: 10px;">-</span>\n' +
										'<input type="number" class="endDay" value="'+(automaticApprovals[i].maxTime?automaticApprovals[i].maxTime:"")+'"  />\n' +
										'<label  class="error remainday-error"    style="left: 490px;top: -2px;color: #ef392b;" hidden="hidden">\n' +
										'<i class="fa fa-times-circle"></i><span style="margin-left: 4px;">请输入正确的时间段</span>\n' +
										'</label>\n' +
										'</div>\n' +
										'</div>\n' +
										'<div class="configure_time" style="position: relative;">\n' +
										'<label>审核时间:</label>\n' +
										'<div><input type="number" class="time changeTime" value="'+automaticApprovals[i].approvalTime+'">分钟后自动通过领导审核</div>\n' +
										'<label  class="error time-error"  style="left: 300px;top: 8px;color: #ef392b;" hidden="hidden">\n' +
										'<i class="fa fa-times-circle"></i>\n' +
										'<span></span>\n' +
										'</label>\n' +
										'</div>\n' +
										'<div class="configure_btn"><button class="btn  btn-success cancel">取消</button><div class="btn btn-primary save" data-id="'+automaticApprovals[i].id+'">保存</div></div>\n' +
										'</div>\n' +
										'</div>'

								$("#configures").append(obj)
							}
						}
					}
				});
			}

input复选框默认选中

'<input type="checkbox" ' +(automaticApprovals[i].status=="0"?"":"checked='checked'" )+ 'name="configureCheck" data-id="'+automaticApprovals[i].id+'" class="configureCheck">\n' +

下拉框默认选中 渲染数据option

'<select  name="servicePeriod" class="select_condition servicePeriod" >\n' +
'<option value="">请选择</option>\n' +
'<option value="0" ' +(automaticApprovals[i].servicePeriod=="0"?"selected='selected'":"" )+ '>不限</option>'+getOptions(servicePeriod,automaticApprovals[i].servicePeriod)+'\n' +
'</select>\n' +
function getOptions(data,cur) {
   return data.map(function(value){
      return '<option ' +(cur==value.dictLabel?"selected='selected'":"" )+ ' value="'+value.dictLabel+'">'+value.dictLabel+'</option>';
   }).join('')
}

给渲染的元素添加绑定事件

$(document).on('click', '元素', function () {
  console.log("点击了")
})

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值