使用JQUERY实现JSON数据三级联动

<!DOCTYPE  html>
<html>
<head>
<title>json数据三级联动select</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
</head>
<body>
<div>
  <label>品牌:</label><select id="sel1"></select>
  <label>型号:</label><select id="sel2"></select>
  <label>价格:</label><select id="sel3"></select>
</div>
<script type="text/javascript">
  (function($){
    var data = {'car':[
      {'brand':'本田','param':[
        {'name':'飞度','price':'9w'},
        {'name':'锋范','price':'10w'},
        {'name':'思域','price':'14w'},
        {'name':'xx','price':'15w'}
      ]},
      {'brand':'宝马','param':[
        {'name':'3x','price':'49w'},
        {'name':'5x','price':'70w'},
        {'name':'7x','price':'214w'}
      ]},
      {'brand':'奔驰','param':[
        {'name':'C级','price':'28w'},
        {'name':'E级','price':'40w'}
      ]}
    ]};
    //console.log(data);
    var $sel1 = $('#sel1');
    var $sel2 = $('#sel2');
    var $sel3 = $('#sel3');


    function select_1(n){//构造第一个select
      var n = n || 0;
      var html = '';
      var len = data.car.length;
      for(var i = 0; i < len; i++){
        if(i == n){
          html += '<option value="' + data.car[i].brand + '" selected="selected">' + data.car[i].brand + '</option>';
        }else{
          html += '<option value="' + data.car[i].brand + '">' + data.car[i].brand + '</option>';
        }
      }
      $sel1.html(html);
      select_2(n);
    }


    function select_2(n,q){//构造第二个select
      var n = n || 0;
      var q = q || 0;
      var html = '';
      var len = data.car[n].param.length;
      for(var i = 0; i < len; i++){
        if(i == q){
          html += '<option value="' + data.car[n].param[i].name + '" selected="selected">' + data.car[n].param[i].name + '</option>';
        }else{
          html += '<option value="' + data.car[n].param[i].name + '" >' + data.car[n].param[i].name + '</option>';
        }
      }
      $sel2.html(html);
      select_3(n,q);
    }


    function select_3(n,q){//构造第三个select
      var n = n || 0;
      var q = q || 0;
      var html = '';
      html += '<option value="' + data.car[n].param[q].price + '" >' + data.car[n].param[q].price + '</option>';
      $sel3.html(html);
    }


    select_1();//初始化


    $sel1.change(function(){//绑定第一个select
      var n = $sel1.find(':selected').index();
      select_1(n);
    });


    $sel2.change(function(){//绑定第二个select
      var n = $sel1.find(':selected').index();
      var q = $sel2.find(':selected').index();
      select_3(n,q);
    });
  })(jQuery);
</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值