JQuery省市联动效果实现过程详解
程序员文章站
2022-03-20 19:12:27
js相关技术js中的数组: ["城市"]new array()dom树操作: 创建节点: document.createelement 创建文本节点: docume...
js相关技术
js中的数组: ["城市"]
new array()
dom树操作:
- 创建节点: document.createelement
- 创建文本节点: document.createtextnode
- 添加节点: appendchild
需求分析
在我们的注册表单中,通常我们需要知道用户的籍贯,需要一个给用选择的项,当用户选中了省份之后,列出省下面所有的城市
技术分析
准备工作 : 城市信息的数据
添加节点 : appendchild (js)
a. append : 添加子元素到末尾
$("#div1").append("<font color='red'>this is replacing text</font>")
b. appendto : 给自己找一个爹,将自己添加到别人家里
$("#div1").prepend("<font color='red'>this is replacing text</font>")
和第一个效果一样
c. prepend : 在子元素前面添加
$("#div1").after("<font color='red'>this is replacing text</font>")
d. after : 在自己的后面添加一个兄弟
$("<font color='red'>this is replacing text</font>").appendto("#div1")
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>title</title> <script type="text/javascript" src="js/jquery-1.11.0.js"></script> <script> $(function () { $("#btn1").click(function () { // $("#div1").append("<font color='red'>this is replacing text</font>") // $("#div1").prepend("<font color='red'>this is replacing text</font>") $("#div1").after("<font color='red'>this is replacing text</font>") // $("<font color='red'>this is replacing text</font>").appendto("#div1") }); }); </script> </head> <body> <input type="button" value="click me, replace text" id="btn1"> <div id="div1">this is a text that will be replaced!</div> </body> </html>
遍历的操作:
<script> var cities = ["深圳市", "东莞市", "惠州市", "广州市"]; $(cities).each(function (i, n) { console.log(i + "====" + n); }) $.each(cities, function (i, n) { console.log(i + ">>>>" + n); }) </script>
步骤分析:
- 导入jq的文件
- 文档加载事件:页面初始化
- 进一步确定事件: change事件
- 函数: 得到当前选中省份
- 得到城市, 遍历城市数据
- 将遍历出来的城市添加到城市的select中
代码实现:
$(function(){ $("#province").change(function(){ // alert(this.value); //得到城市信息 var cities = provinces[this.value]; //清空城市select中的option /*var $city = $("#city"); //将jq对象转成js对象 var cityselect = $city.get(0) cityselect.options.length = 0;*/ $("#city").empty(); //采用jq的方式清空 //遍历城市数据 $(cities).each(function(i,n){ $("#city").append("<option>"+n+"</option>"); }); }); });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。