20131222-Dom省市加载-第二十七天
[1]省市选择
<head>
<title></title>
<script type="text/javascript">
window.onload = function () {
//1.动态加载省份
var datas = {
"山东": ["青岛", "济南", "烟台"],
"山西": ["大同", "太原", "运城"],
"陕西": ["西安", "咸阳", "汉中"]
};
var defaultProvince = '山西';
loadProvince(datas, defaultProvince);
//2.根据默认选中的省份,动态加载城市信息
loadCity(datas, defaultProvince);
//2.为省份的select注册一个选择项改变事件,当选择项改变后动态改变"城市列表"
document.getElementById('s1').onchange = function () {
//1.获取当前选中项
//this.value指的就是,当前select中被选中的那个option的value值。
//alert(this.value);
//获取当前用户选中的省份
var currentProvince = this.value;
//根据省份信息加载城市
loadCity(datas, currentProvince);
};
};
//加载城市的方法
function loadCity(dict, dp) {
var s2Obj = document.getElementById('s2');
//重新加载之前清空一下s2
while (s2Obj.firstChild) {
s2Obj.removeChild(s2Obj.firstChild);
}
//根据默认选中省份,查找对应的城市信息
var city = dict[dp];
//将找到的城市数据加载到s2中
for (var i = 0; i < city.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = city[i];
opt.value = city[i];
s2Obj.appendChild(opt);
}
}
//加载省份的方法
function loadProvince(dict, dp) {
var s1Object = document.getElementById('s1');
//遍历dict数据
for (var key in dict) {
//每遍历一条数据,则向selelct增加一个option
var opt = document.createElement('option');
opt.innerHTML = key;
opt.value = key;
//如果当前遍历的省份与"默认要选中的省份"相同
if (key == dp) {
//设置默认被选中的option
opt.selected = true;
}
//var opt = new Option(key,key);
s1Object.appendChild(opt);
}
}
</script>
</head>
<body>
省:
<select id="s1">
</select>
市:
<select id="s2">
</select>
</body>
20131222-Dom省市加载-第二十七天的更多相关文章
- jquery的ready方法(DOM是否加载完)详解与使用
jquery的ready方法(准备DOM触发)还是比较复杂的,我们先看流程图:
- html dom的加载
操作HTML DOM文档的一个难题是,你的JavaScript代码可能在DOM完全载入之前运行,这会导致你的代码产生一些问题.页面加载时浏览器内部操作的顺序大致是这样的: 1. HTML被解析. 2. ...
- 页面全部加载完毕和页面dom树加载完毕
dom树加载完毕 $(document).ready()//原生写法document.ready = function (callback) { ///兼容FF,Google ...
- setUserVisibleHint的使用.执行顺序和viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment
处理问题一:viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment的原因(源码解读); 处理问题二:setUserVisibleHint的使用场 ...
- chrome://inspect调试html页面空白,DOM无法加载的解决方案
chrome://inspect调试html页面空白,DOM无法加载的解决方案 先描述一下问题 有一段时间没碰huilder hybird app 开发了,今天调试的时候 chrome://inspe ...
- DWZ-JUI+UEditor第二次不显示,UEditor异步加载第二次不显示的解决方案
使用UEditor-1.4.3中遇到第一次跳转到使用UEditor的界面后,编辑器加载正常,返回后第二次再跳转到这个界面就出现UEditor无法正常加载, 也没百度到答案,看UEditor源码,发现这 ...
- window.onload 和 DOMContentLoaded区别及如何判断dom是否加载完毕
http://blog.allenm.me/2010/02/window-onload-和-domcontentloaded/ 其中使用IE不支持DOMContentLoaded,那么判断IE是否加载 ...
- DOM元素加载之前执行的jQuery代码
<script type="text/javascript"> (function() { alert("DOM还没加载哦!"); })(jQuer ...
- 所有DOM元素加载之前执行的页面加载事件[jquery]
<script type="text/javascript"> (function() { alert("DOM还没加载"); })(jQuery) ...
随机推荐
- Qt在Windows上的调试器CDB安装与配置
如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器).本文介 ...
- 零元学Expression Blend 4 - Chapter 28 ListBox的基本运用与更改预设样式
原文:零元学Expression Blend 4 - Chapter 28 ListBox的基本运用与更改预设样式 本章将先教大家认识ListBox的基本运用与更改预设样式 本章将先教大家认识List ...
- Linux下的软件安装
在线安装 APT:advanced packaging Tool,Debian及其派生的发行版的软件包管理工具,包含以apt-开头的多个工具,如apt-get,apt-cache,apt-cdrom ...
- Delphi 与 VC 共享接口和对象
我经常会用 Delphi 写一些工具和应用,为了扩展方便,大部分都会做成插件形式. 迫于某些原因,我的插件不得不用其他开发工具来完成,比如 VC. 于是有个大问题需要解决:如何让 D 和 VC 互相通 ...
- Qt 访问网络的 HttpClient(封装QNetworkAccessManager,且有服务端)
Qt 使用 QNetworkAccessManager 访问网络,这里对其进行了简单的封装,访问网络的代码可以简化为: 1 2 3 HttpClient("http://localhost: ...
- 解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案
如果使用 SpringBoot 多模块发布到外部 Tomcat,可能会遇到各种各样的问题.本文归纳了以下 8 个原则和发布时经常出现的 4 个问题的解决方案,掌握了这些原则和解决方案,几乎可以解决绝大 ...
- Ionic Framework 4 介绍
Ionic Framework 4是一个开源UI工具包,用于使用Web技术(HTML,CSS和JavaScript)构建高性能的高质量移动和桌面应用程序.Ionic Framework专注于前端用户体 ...
- ABAP中SPLIT关键字 当分隔符位于字符串首尾时
使用SPLIT关键字将一个字符串按某个分隔符拆分,如果分隔符穿插在字符串中间(即首尾字符均不是分隔符的情况),我们很容易知道拆分后的结果,但如果分隔符恰好位于字符串首或者末尾呢? 如下面的代码所示,在 ...
- C语言实现常用查找算法——二分查找
#include<stdio.h> void insert_sort(int a[],int n); int binary_search(int a[],int x,int n); voi ...
- 30443数据查询语言DQL
5.4 SQL的数据查询功能 数据查询是数据库最常用的功能.在关系数据库中,查询操作是由SELECT语句来完成.其语法格式如下: SELECT column_expression FROM table ...