js select下拉联动 更具级联性!


Posted in Javascript onApril 17, 2020

之前有过记录,select下拉联动 (Bootstrap、JQuery插件之cxselect)区别在这个级联性更强。

js select下拉联动 更具级联性!

HTML源码:

<!DOCTYPE html> 
<head> 
 <meta charset="utf-8"> 
 <title></title> 
</head> 
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 
<script type="text/javascript" src="USjs.js"></script> 
<body> 
 
<div class="container"> 
 <table> 
 <tr> 
  <td>厂商:</td> 
  <td><select id="selF"><option>请选择</option></select></td> 
  <td>品牌:</td> 
  <td><select id="selT"><option>请选择</option></select></td> 
  <td>型号:</td> 
  <td><select id="selC"><option>请选择</option></select></td> 
  <td><input type="button" value="查询" id="Button1" class="btn" /></td> 
 </tr> 
 </table> 
</div> 
 
</body> 
</html>

JS(USjs.js)源码: 在转载的基础上做了修改,特别是源数据JSON格式。

$(function(){ 
 
 function objInit(obj){ 
 return $(obj).html('<option>请选择</option>'); 
 } 
 
 $.getJSON('data.json', function(json) { 
 var arrData = json; 
 $.each(arrData,function(pF,pV){ 
  $('#selF').append('<option value="'+pF+'">'+pV.n+'</option>'); 
 }); 
 $('#selF').change(function(){ 
  objInit('#selT'); 
  objInit('#selC'); 
  $.each(arrData,function(pF,pS){ 
  if($('#selF option:selected').attr('value')==pF){ 
   $.each(pS.s,function(pT,pC){ 
   $('#selT').append('<option value="'+pT+'">'+pC.n+'</option>'); 
   }); 
   $('#selT').change(function(){ 
   objInit('#selC'); 
   $.each(pS.s,function(pT,pC){ 
    if($('#selT option:selected').attr('value')==pT){ 
    $.each(pC.s,function(ii,vv){ 
     $('#selC').append('<option value="'+ii+'">'+vv.n+'</option>'); 
    }) 
    } 
   }) 
   }); 
  } 
  }) 
 }); 
 }); //getJSON 
});

JSON(data.json)文件

[ 
 { 
 "n":"厂商1", 
 "s":[ 
  { 
  "n":"品牌一", 
  "s":[{"n":"型号1-1-1"},{"n":"型号1-1-2"}] 
  }, 
  { 
  "n":"品牌二", 
  "s":[{"n":"型号1-2-1"},{"n":"型号1-2-2"}] 
  } 
  ] 
 }, 
 { 
 "n":"厂商2", 
 "s":[ 
  { 
  "n":"品牌一", 
  "s":[{"n":"型号2-1-1"},{"n":"型号2-1-2"}] 
  }, 
  { 
  "n":"品牌二", 
  "s":[{"n":"型号2-2-1"},{"n":"型号2-2-2"}] 
  } 
  ] 
 }, 
 { 
 "n":"厂商3", 
 "s":[ 
  { 
  "n":"品牌一", 
  "s":[{"n":"型号3-1-1"},{"n":"型号3-1-2"}] 
  }, 
  { 
  "n":"品牌二", 
  "s":[{"n":"型号3-2-1"},{"n":"型号3-2-2"}] 
  } 
  ] 
 } 
]

Find more from: //3water.com/article/102040.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript之旅 对象的原型链之由来
Aug 25 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
使用不同的方法结合/合并两个JS数组
Sep 18 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 Javascript
简单实现js轮播图效果
Jul 14 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
JavaScript使用面向对象实现的拖拽功能详解
Jun 12 Javascript
Javascript var变量删除原理及实现
Aug 26 Javascript
解决elementui表格操作列自适应列宽
Dec 28 Javascript
JavaScript如何利用Promise控制并发请求个数
May 14 Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 #Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 #Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 #Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 #Javascript
深入理解Javascript中的valueOf与toString
Jan 04 #Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 #Javascript
js实现定时进度条完成后切换图片
Jan 04 #Javascript
You might like
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
node.js +mongdb实现登录功能
2020/06/18 Javascript
Python批量更改文件名的实现方法
2017/10/29 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
python3 反射的四种基本方法解析
2019/08/26 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
面试后感谢信怎么写
2014/02/01 职场文书
团日活动总结书
2014/05/08 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python