利用JavaScript完成省市联动效果

红太狼 2020-06-06 17:09 712阅读 0赞

利用JavaScript完成省市联动效果

省市联动效果

【HTML中的DOM操作】

一些常用的 HTML DOM 方法:

getElementById(id) - 获取带有指定 id 的节点(元素)

appendChild(node) - 插入新的子节点(元素)

removeChild(node) - 删除子节点(元素)

一些常用的 HTML DOM 属性:

innerHTML - 节点(元素)的文本值

parentNode - 节点(元素)的父节点

childNodes - 节点(元素)的子节点

attributes - 节点(元素)的属性节点

查找节点:

getElementById() 返回带有指定 ID 的元素。

getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。

getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。

增加节点:

createAttribute() 创建属性节点。

createElement() 创建元素节点。

createTextNode() 创建文本节点。

insertBefore() 在指定的子节点前面插入新的子节点。

appendChild() 把新的子节点添加到指定节点。

删除节点:

removeChild() 删除子节点。

replaceChild() 替换子节点。

修改节点:

setAttribute() 修改属性

setAttributeNode() 修改属性节点

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script>
  7. /*动态添加 : <p>文本</p> */
  8. function dianwo(){
  9. var div = document.getElementById("div1");
  10. //创建元素节点
  11. var p = document.createElement("p"); // <p></p>
  12. //创建文本节点
  13. var textNode = document.createTextNode("文本内容");// 文本内容
  14. //将p 和文本内容关联起来
  15. p.appendChild(textNode); // <p>文本</p>
  16. //将P添加到目标div中
  17. div.appendChild(p);
  18. }
  19. </script>
  20. </head>
  21. <body>
  22. <input type="button" value="点我,添加P" onclick="dianwo()" />
  23. <!--一会动态的往这个Div中添加节点-->
  24. <div id="div1">
  25. </div>
  26. </body>
  27. </html>

代码实现

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script>
  7. /*
  8. 准备工作 : 准备数据
  9. */
  10. var provinces = [
  11. ["深圳市","东莞市","惠州市","广州市"],
  12. ["长沙市","岳阳市","株洲市","湘潭市"],
  13. ["厦门市","福州市","漳州市","泉州市"]
  14. ];
  15. /*
  16. 1. 确定事件: onchange
  17. 2. 函数: selectProvince()
  18. 3. 函数里面要搞事情了
  19. 得到当前操作元素
  20. 得到当前选中的是那一个省份
  21. 从数组中取出对应的城市信息
  22. 动态创建城市元素节点
  23. 添加到城市select中
  24. */
  25. function selectProvince(){
  26. var province = document.getElementById("province");
  27. //得到当前选中的是哪个省份
  28. //alert(province.value);
  29. var value = province.value;
  30. //从数组中取出对应的城市信息
  31. var cities = provinces[value];
  32. var citySelect = document.getElementById("city");
  33. //清空select中的option
  34. citySelect.options.length = 0;
  35. for (var i=0; i < cities.length; i++) {
  36. //alert(cities[i]);
  37. var cityText = cities[i];
  38. //动态创建城市元素节点 <option>东莞市</option>
  39. //创建option节点
  40. var option1 = document.createElement("option"); // <option></option>
  41. //创建城市文本节点
  42. var textNode = document.createTextNode(cityText) ;// 东莞市
  43. //将option节点和文本内容关联起来
  44. option1.appendChild(textNode); //<option>东莞市</option>
  45. //添加到城市select中
  46. citySelect.appendChild(option1);
  47. }
  48. }
  49. </script>
  50. </head>
  51. <body>
  52. <!--选择省份-->
  53. <select onchange="selectProvince()" id="province">
  54. <option value="-1">--请选择--</option>
  55. <option value="0">广东省</option>
  56. <option value="1">湖南省</option>
  57. <option value="2">福建省</option>
  58. </select>
  59. <!--选择城市-->
  60. <select id="city"></select>
  61. </body>
  62. </html>

发表评论

表情:
评论列表 (有 0 条评论,712人围观)

还没有评论,来说两句吧...

相关阅读

    相关 省市联动效果 源码下载

    对于省市联动的效果,在大部分的项目我们都会涉及的,开始刚工作的时候真心害怕这个东西。不知道如何下手去写。后来在我们技术老大的带领下用angular写的省市联动效果,真心不错。但