Js 动态生成多个Select 标签 , for循环动态给各自select 生成option

这篇博客介绍了如何使用JavaScript通过for循环动态生成多个Select元素,并为每个Select添加Option。同时,文章还讲解了如何监听Select的点击事件,以获取选中的Option值,这对于动态交互的网页开发十分有用。


var div= "";
for (var i = 0; i < timePeriodList.length; i++) {
    //时段Id
    var timeId = timePeriodList[i].substring(0, 1);

    //时段(17:00-18:00)
    var time = timePeriodList[i].substring(2, timePeriodList[i].length);

    // 生成时段选择下拉框按钮
    div+= "<div class='form-group'>" +
            "<label class='col-xs-3 col-sm-2 control-label item-required'>" + time + ":</label>" +
            "<div class='col-xs-12 col-sm-4'>" +
            "<select onchange='selectSku("+timeId+")' id='" + timeId + "'  class=' form-control'   data-live-search='true' data-size='10' multiple>" +
           "</select>" +
           "</div>" +
            "</div>";

}

//添加时段
$("#timePeriodDiv").append(div);



//生成option
//渲染商品数据  查询当前阈值对应店铺的所有商品
$.ajax({
       type: "GET",
       url: "${base}/admin/secKillActivity/querySku?setId=" + setIdOptVal,
       success: function (data) {
             //动态拼接 option
             var option = "";
             for (var opt = 0; opt < data.data.length; opt++) {
                  option += "<option value='" + data.data[opt].skuId + "'  >" + data.data[opt].productName + "</option>";
              }
              for (var i = 0; i < timePeriodList.length; i++) {
                   //时段Id
                   var timeId = timePeriodList[i].substring(0, 1);
                   //添加商品option
                   $("#" + timeId).append(option);
                   $("#"+timeId).selectpicker({
                        width : 400,
                        actionsBox:true, //在下拉选项添加选中所有和取消选中的按钮
                         multiple:"true",
                    });
                    $("#"+timeId).selectpicker('render');
                    $("#"+timeId).selectpicker('refresh');
              }
       }
});

 

select 的点击事件 获取选中的option

var timeSkuMap = {} ;

//商品选择事件 获取选择的sku数据 及对应的 时段信息
function selectSku(timeId) {
      //获取时段商品所选的id
      var timeSkuIdList = $("#"+timeId+" option:selected");
      //console.info(timeSkuIdList.size());
      var timeSkuIdVal = "";
      for (var valI = 0 ; valI <timeSkuIdList.size() ;valI++){
           if(valI == timeSkuIdList.size()-1){
                timeSkuIdVal += $("#"+timeId).find("option:selected")[valI].value ;
           }else {
                 timeSkuIdVal += $("#"+timeId).find("option:selected")[valI].value+"," ;
           }
      }
    //console.info(timeSkuIdVal);
    timeSkuMap[timeId] = timeSkuIdVal ;
    //console.info(timeSkuMap);
    //转成字符串
    $("#timeSkuMap").val(JSON.stringify(timeSkuMap));
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值