js省市区三级联动

简介: js省市区三级联动

文章描述了一个使用JavaScript和XMLHttpRequest实现的动态加载和渲染中国省份、城市及县级数据的示例,通过JSON数据结构展示如何在网页中创建下拉菜单进行选择。

[{
  "prince": "河南省",
  "citys": [{
    "city": "鹤壁市",
    "conturys": [{
      "contury": "淇滨区"
    }, {
      "contury": "浚县"
    }]
  }, {
    "city": "新乡市",
    "conturys": [{
      "contury": "红旗区"
    }, {
      "contury": "牧野区"
    }, {
      "contury": "卫滨区"
    }]
  }]
}, {
  "prince": "河北省",
  "citys": [{
    "city": "石家庄市",
    "conturys": [{
      "contury": "桥西区"
    }, {
      "contury": "新华区"
    }]
  }, {
    "city": "张家口市",
    "conturys": [{
      "contury": "万全区"
    }, {
      "contury": "下花园区"
    }, {
      "contury": "宣化区"
    }]
  }]
}]
let xhr = new XMLHttpRequest();
xhr.open('get', 'js/sanjld.json', true);
xhr.send();
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
    let text = xhr.responseText;
    console.log(text);
    data = JSON.parse(text);
    console.log(data);
    item(data);
 
  }
};
 
let prince = document.getElementsByClassName('prince')[0];
console.log(prince);
let citys = document.getElementsByClassName('citys')[0];
console.log(citys);
let countrys = document.getElementsByClassName('countrys')[0];
console.log(countrys);
 
function item(data) {
  console.log(data);
  // 初始化一个字符串 str,值为 "-请选择省-"
  let str = `<option class="city">-请选择省-</option>`;
  // 遍历数组
  for (let i = 0; i < data.length; i++) {
    console.log(data[i]);
    // 拼接第一个输入框内容,将数据中的省份名称添加到 str 中
    str += `
            <option value="${i}">${data[i].prince}</option>`;
  }
  // 渲染数据到名为 prince 的元素中
  prince.innerHTML = str;
};
 
// 市级数据渲染
function province(w) {
  console.log(w);
  // 初始化一个字符串 stre,值为 "-请选择市-"
  let stre = `<option class="city">-请选择市-</option>`;
  // 初始化一个字符串 sttrs,值为 "-请先选择县-"
  let sttrs = `<option class="country">-请先选择县-</option>`;
  // 遍历选中省份对应的城市数据
  for (let i = 0; i < data[w].citys.length; i++) {
    // 将城市信息添加到 stre 中作为 option 标签的值和文本
    stre += `<option value="${i}">${data[w].citys[i].city}</option>`;
    abc = data[w]; // 保存当前省份的数据
  }
  // 重新渲染城市选择框的数据
  citys.innerHTML = stre;
  // 重新渲染县级选择框的数据
  countrys.innerHTML = sttrs;
};
// 县级数据渲染
function town(a) {
  console.log(a);
  // 初始化一个字符串 sttrs,值为 "-请选择县-"
  let sttrs = `<option class="country">-请选择县-</option>`;
  // 遍历选中城市对应的县级数据
  for (let i = 0; i < abc.citys[a].conturys.length; i++) {
    // 将县级信息添加到 sttrs 中作为 option 标签的值和文本
    sttrs += `<option value="country">${abc.citys[a].conturys[i].contury}</option>`;
  }
  // 重新渲染县级选择框的数据
  countrys.innerHTML = sttrs;
};

// item(data) 函数:

//接收一个包含省份数据的数组 data 作为参数。

// 遍历数组中的省份数据,将每个省份的名称添加到一个字符串中,并生成对应的 option 标签。

// 将生成的字符串渲染到名为 prince 的 HTML 元素中。


// province(w) 函数:

// 接收一个表示选中省份索引的参数 w。

// 初始化城市和县的选择框内容为空。

// 遍历选中省份对应的城市数据,生成每个城市的 option 标签,并将其渲染到名为 citys 的 HTML 元素中。

// 同时将县的选择框内容设置为“请先选择县”。


// town(a) 函数:

// 接收一个表示选中城市索引的参数 a。

// 初始化县级选择框的内容为空。

// 遍历选中城市对应的县级数据,生成每个县的 option 标签,并将其渲染到名为 countrys 的 HTML 元素中。

// 获取到省市县的数据 let声明新的变量 在文档中通过类名获取数据


目录
相关文章
|
27天前
|
JavaScript
js实现省市区三级联动
js实现省市区三级联动
35 0
|
27天前
|
JavaScript
js省市区三级联动
js省市区三级联动
24 1
|
4月前
|
JavaScript 前端开发
「 javaScript实现省市区三级联动」
「 javaScript实现省市区三级联动」
|
4月前
|
JavaScript
制作JS省市区三级联动遇到市区选项是空白的问题
制作JS省市区三级联动遇到市区选项是空白的问题
|
4月前
|
JavaScript
原生js实现省市区三级联动
原生js实现省市区三级联动
50 0
|
JavaScript 前端开发
|
JavaScript 前端开发
JavaScript实现省市区三级联动
JavaScript实现省市区三级联动 之前的文章中我们说到过如何利用JavaScript实现二级联动,这次我们来说说如何利用JavaScript实现三级联动。效果如图: 在这里插入图片描述 HTML代码: 请选择省份:&lt;select name=&quot;&quot; id=&quot;province&quot;&gt; &lt;option value=&quot;&quot;&gt;请选择省份......&lt;/option&gt; &lt;/select&gt; 请选择城市:&lt;select name=&quot;&quot; id=&quot;city&quot;&gt; &lt;option value=&quot;&quot;&gt;请选择城市......&lt;/option&gt; &lt;/sel
JavaScript实现省市区三级联动
|
JSON JavaScript 前端开发
javascript实现省市区三级联动选择的代码(数据为模拟json数据)
javascript实现省市区三级联动选择的代码(数据为模拟json数据):
445 0
|
Web App开发 JavaScript 前端开发
js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
网上的一些百度地图例子,基本上没有连套的 定位 例子。下面我分享一套我自己弄的,废话不多说,看代码,里面有注释! 1 2 3 4 5 6 Hello, World 7 8 html ...
1676 0