js三级联动
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<select >
<option value="">品牌</option>
<option value="">宝马</option>
<option value="">奔驰</option>
</select>
<select > <option value="">车型</option>
<option value="">520LI</option>
</select>
<select > <option value="">车款</option>
<option value="">2016 1.8T</option>
</select> </body>
<script src="js/make_json.js" type="text/javascript" charset="utf-8"></script>
<script src="js/model_json.js" type="text/javascript" charset="utf-8"></script>
<script src="js/car_json.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery-1.7.2.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var car_json ={
5001: [{
name: "1.8 TSI 2012-2014",
pinyin: "",
id: 129643
}],
5002: [{
name: "2.0 TSI 2012-2014",
pinyin: "",
id: 129176
}]
};
var make_json = {
aodi: {
name: "奥迪",
id: 272
},
baoma: {
name: "宝马",
id: 270
}
}
var model_json = {
201: [{
name: "Leon Cupra",
pinyin: "",
id: 5002
}, {
name: "Leon FR",
pinyin: "",
id: 5001
}]
}
//0. 获取元素
var selects = $('select');
//品牌
var make = selects.eq(0);
//车型
var model = selects.eq(1);
//车款
var car = selects.eq(2);
//1.遍历生成品牌列表
var html = '';
$.each(make_json,function(i){
//2.将品牌信息拼接成html
html+='<option value="'+this.id+'">'+this.name+'</option>';
})
//3.更新品牌列表
make.children(':not(:first)').remove();
make.append(html);
//4.添加品牌change事件
make.change(function(){
//5.获取当前的品牌ID
var id = this.value;
//6. 根据品牌ID获取当前品牌下的车型数据
var modelData = model_json[id] || [] ;
//7.遍历车型 数据生成车型 列表
var html = '';
$.each(modelData,function(i){
//8.将车型信息拼接成html
html+='<option value="'+this.id+'">'+this.name+'</option>';
})
//9.更新车型列表
model.children(':not(:first)').remove();
model.append(html);
//9.1 设置默认被选中车型 获取车型 中的第二个选项
model.children(':eq(1)').attr('selected',true);
//9.2根据当前被选中的车型 获取对应的车款信息
var id = model.val();
//6. 根据车型ID获取当前品牌下的车款数据
var carData = car_json[id] || [] ;
//7.遍历车型 数据生成车型 列表
var html = '';
$.each(carData,function(i){
//8.将车型信息拼接成html
html+='<option value="'+this.id+'">'+this.name+'</option>';
})
//9.更新车型列表
car.children(':not(:first)').remove();
car.append(html);
car.children(':eq(1)').attr('selected',true);
})
//10.车型change事件
model.change(function(){
//11.获取当前的车型ID
var id = this.value;
//6. 根据车型ID获取当前品牌下的车款数据
var carData = car_json[id] || [] ;
//7.遍历车型 数据生成车型 列表
var html = '';
$.each(carData,function(i){
//8.将车型信息拼接成html
html+='<option value="'+this.id+'">'+this.name+'</option>';
})
//9.更新车型列表
car.children(':not(:first)').remove();
car.append(html);
car.children(':eq(1)').attr('selected',true);
})
</script>
</html>
js三级联动的更多相关文章
- 省市区js三级联动(原创)
看了一些网上的js三级联动,但感觉不是缺这,就是少那,决定亲自操刀写了一个,现记录如下,以备后用! <!DOCTYPE html> <html> <head> &l ...
- js 三级联动
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- js 三级联动 1
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 简单的纯js三级联动
参考这个 日尼禾尔 二级联动 写了三级联动 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- 原生js三级联动
<!DOCTYPE html> <html lang="en"> <head> <title> 三级联动 </title> ...
- Js三级联动菜单
效果演示: <SCRIPT LANGUAGE="JavaScript"> <!-- function CreateSelect(_FormName,_SName, ...
- JS三级联动实例
简单的HTML实例: <h4>选择省</h4> <div class="selectSheng"></div> <select ...
- js三级联动效果city-picker
链接:https://pan.baidu.com/s/1NE_EO5_xGvR-y-lboYap7g 提取码:h00e 效果展示: 解决: 动态赋值: 注意:在执行赋值之前,必须执行reset和des ...
- 三级联动第二种方法 三级联动.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- viewpager实现画廊(一屏多个Fragment)效果
本文主要介绍如何利用ViewPager实现Gallery的画廊效果,即一屏显示多个Fragment. 效果图如下: 在 使用Gallery的时候大家会发现有几个问题(1). 无法控制每次滑动只滑动一页 ...
- 批量删除Redis数据库中的Key
批量删除KeyRedis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作 redis-cli keys &q ...
- Java 类及其组成可使用的修饰符
2017-11-04 21:51:04 类: 默认,public(一个.java文件只能有一个public类),final,abstract 自己定义,public居多 不允许使用static,pri ...
- 20170228VBA提取邮件部分信息
Sub 获取OutLook收件箱主题和正文() On Error Resume Next Dim sht As Worksheet Dim olApp As Outlook.Application D ...
- [洛谷P1507]NASA的食物计划 以及 对背包问题的整理
P1507 NASA的食物计划 题面 每个物品有三个属性,"所含卡路里":价值\(v\),"体积":限制1\(m_1\),以及"质量":限制 ...
- poj2686 状压dp入门
状压dp第一题:很多东西没看懂,慢慢来,状压dp主要运用了位运算,二进制处理 集合{0,1,2,3,....,n-1}的子集可以用下面的方法编码成整数 像这样,一些集合运算就可以用如下的方法来操作: ...
- 诡异的小bug 自动生成font标签包裹span标签中的文字
某天测试自己写的网站的时候突然发现页面上一些文字排版出现了一些奇怪的错乱,在控制台发现错乱的文字被font标签包裹着 ,但是代码中根本没用用到font标签 后来发现是因为自己不小心点了谷歌浏览器地址栏 ...
- Sunday算法[原创]
一.应用: 同样的,sunday算法也是在一个字符串中查找另一个字符串出现的首地址,是Daniel M.Sunday于1990年提出的,从销量上讲,Sunday>BM>KMP,是这类问题的 ...
- JDBC连接SQLSERVER
package xhs;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; im ...
- 小议常被忽略的a标签:visited属性的特殊用法
CSS1/CSS2对于a定义了4个伪类, :link a标签未访问时的样式 :active a标签mousedown时的样式 :hover a标签mouseover时的样式 :visited ...