查询操作(原理)

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>原生地区查询</title>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css">

<style>

:root {

font-size: 15px;

}

body {

padding-top: 15px;

}

</style>

</head>

<body>

<div class="container">

<form id="editForm" class="row">

<!-- 输入省份名字 -->

<div class="mb-3 col">

<label class="form-label">省份名字</label>

<input type="text" value="北京" name="province" class="form-control province" placeholder="请输入省份名称" />

</div>

<!-- 输入城市名字 -->

<div class="mb-3 col">

<label class="form-label">城市名字</label>

<input type="text" value="北京市" name="city" class="form-control city" placeholder="请输入城市名称" />

</div>

</form>

<button type="button" class="btn btn-primary sel-btn">查询</button>

<br><br>

<p>地区列表: </p>

<ul class="list-group">

<!-- 示例地区 -->

<li class="list-group-item">东城区</li>

</ul>

</div>

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

<script>

/**

* 目标: 根据省份和城市名字, 查询对应的地区列表

*/

// 1. 查询按钮-点击事件

document.querySelector('.sel-btn').addEventListener('click', () => {

// 2. 收集省份和城市名字

const pname = document.querySelector('.province').value

const cname = document.querySelector('.city').value

// 3. 组织查询参数字符串

const qObj = {

pname:pname,

cname:cname

}

// 查询参数对象 -> 查询参数字符串

// 创建URLSearchParams 对象

const paramsObj = new URLSearchParams(qObj)

// URLSearchPamams是浏览器内置的

// 避免自己在url后拼接要查询的内容,麻烦

const queryString = paramsObj.toString()

// 生成指定格式的查询参数,字符串

// 结果:参数名1=值1&参数名2=值2

console.log(queryString)

// 4. 使用XHR对象,查询地区列表

const xhr = new XMLHttpRequest()

xhr.open('GET', `http://hmajax.itheima.net/api/area?${queryString}\`)

// 要拼接所以要用模板字符串,?也不能少

xhr.addEventListener('loadend', () => {

console.log(xhr.response)

const data = JSON.parse(xhr.response)

console.log(data)

const htmlStr = data.list.map(areaName => {

return `<li class="list-group-item">${areaName}</li>`

}).join('')

console.log(htmlStr)

document.querySelector('.list-group').innerHTML = htmlStr

})

xhr.send()

})

</script>

</body>

</html>

相关推荐
qq_406176142 天前
关于JavaScript中的filter方法
开发语言·前端·javascript·ajax·原型模式
LongtengGensSupreme4 天前
开放所有跨域 ----前端和后端
前端·后端·ajax·vue·api·jquery
雨雨雨雨雨别下啦5 天前
ajax和axios到底是什么
前端·ajax·okhttp
C_心欲无痕6 天前
网络相关 - Fetch 与 Ajax 请求讲解
前端·网络协议·ajax·fetch
qq_406176147 天前
什么是模块化
开发语言·前端·javascript·ajax·html5
释怀不想释怀9 天前
vue(登录,退出,浏览器本地存储机制)
前端·javascript·vue.js·ajax·html
chilavert31810 天前
技术演进中的开发沉思-284 计算机原理:二进制核心原理
javascript·ajax·计算机原理
Beginner x_u10 天前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
‿hhh10 天前
综合交通运行协调与应急指挥平台项目说明
java·ajax·npm·json·需求分析·个人开发·规格说明书
释怀不想释怀11 天前
Ajax,vue生命周期(自动加载页面发出请求)Axios
前端·javascript·ajax