黑马node.js教程(nodejs教程)——AJAX-Day01-04.案例_地区查询——查询某个省某个城市所有地区(代码示例)

server/2025/3/17 18:15:09/

文章目录

    • 代码示例
    • 效果

代码示例

axiosTest.html

<!DOCTYPE html> <!-- 文档类型声明,告诉浏览器这是一个HTML5文档 -->
<html lang="en"> <!-- HTML根元素,设置文档语言为英语 --><head> <!-- 头部区域,包含文档的元数据 --><meta charset="UTF-8"> <!-- 设置文档字符编码为UTF-8,支持多种语言字符 --><meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- 兼容模式设置,使用最新的IE浏览器渲染模式 --><meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 视口设置,使网页在移动设备上正确显示 --><title>地区查询</title> <!-- 网页标题,显示在浏览器标签页上 --><style>/* CSS样式开始 */.container {/* 主容器样式 */width: 400px;/* 设置容器宽度为400像素 */margin: 50px auto;/* 设置上下外边距为50像素,左右自动居中 */padding: 20px;/* 设置内边距为20像素 */border: 1px solid #ddd;/* 设置1像素实线浅灰色边框 */border-radius: 5px;/* 设置边框圆角为5像素 */box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);/* 添加阴影效果 */}.form-group {/* 表单组样式 */margin-bottom: 15px;/* 设置下外边距为15像素 */}label {/* 标签样式 */display: block;/* 设置为块级元素,独占一行 */margin-bottom: 5px;/* 设置下外边距为5像素 */font-weight: bold;/* 设置文字为粗体 */}input {/* 输入框样式 */width: 100%;/* 宽度占满父元素 */padding: 8px;/* 设置内边距为8像素 */border: 1px solid #ddd;/* 设置1像素实线浅灰色边框 */border-radius: 3px;/* 设置边框圆角为3像素 */box-sizing: border-box;/* 盒模型设置,使padding和border包含在width内 */}button {/* 按钮样式 */background-color: #4CAF50;/* 设置背景色为绿色 */color: white;/* 设置文字颜色为白色 */padding: 10px 15px;/* 设置内边距,上下10像素,左右15像素 */border: none;/* 移除边框 */border-radius: 4px;/* 设置边框圆角为4像素 */cursor: pointer;/* 鼠标悬停时显示为手型光标 */font-size: 16px;/* 设置字体大小为16像素 */}button:hover {/* 按钮悬停状态样式 */background-color: #45a049;/* 悬停时背景色变为深绿色 */}.result-list {/* 结果列表容器样式 */margin-top: 20px;/* 设置上外边距为20像素 */border-top: 1px solid #ddd;/* 设置上边框为1像素实线浅灰色 */padding-top: 15px;/* 设置上内边距为15像素 */}.result-list h3 {/* 结果列表标题样式 */margin-top: 0;/* 移除上外边距 */}.area-item {/* 地区项目样式 */margin-bottom: 5px;/* 设置下外边距为5像素 */padding: 5px;/* 设置内边距为5像素 */background-color: #f9f9f9;/* 设置背景色为浅灰色 */}</style> <!-- CSS样式结束 -->
</head><body> <!-- 文档主体,包含页面的可见内容 --><div class="container"> <!-- 主容器,包含所有页面元素 --><h2>地区查询</h2> <!-- 主标题 --><div class="form-group"> <!-- 表单组,包含省份输入框和标签 --><label for="province">省份名称:</label> <!-- 省份输入框的标签 --><input type="text" id="province" placeholder="请输入省份名称,如:河北省"> <!-- 省份输入框,提供占位文本作为提示 --></div><div class="form-group"> <!-- 表单组,包含城市输入框和标签 --><label for="city">城市名称:</label> <!-- 城市输入框的标签 --><input type="text" id="city" placeholder="请输入城市名称,如:石家庄市"> <!-- 城市输入框,提供占位文本作为提示 --></div><button id="searchBtn">查询地区</button> <!-- 查询按钮 --><div class="result-list"> <!-- 结果列表容器 --><h3>地区列表</h3> <!-- 结果列表标题 --><div id="areaList"></div> <!-- 用于显示地区列表的容器,初始为空 --></div></div><!-- axios库地址,引入axios HTTP请求库 --><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script> <!-- JavaScript代码开始 -->// 获取DOM元素,通过ID选择器获取页面中的元素const provinceInput = document.getElementById('province'); // 获取省份输入框元素const cityInput = document.getElementById('city'); // 获取城市输入框元素const searchBtn = document.getElementById('searchBtn'); // 获取查询按钮元素const areaList = document.getElementById('areaList'); // 获取地区列表容器元素// 添加点击事件,为查询按钮添加点击事件监听器searchBtn.addEventListener('click', function () {// 获取输入的省份和城市,使用trim()方法移除首尾空白字符const pname = provinceInput.value.trim(); // 获取并处理省份输入值const cname = cityInput.value.trim(); // 获取并处理城市输入值// 验证输入,确保用户填写了省份和城市if (!pname || !cname) { // 如果省份或城市为空alert('请输入省份和城市名称'); // 弹出警告框提示用户return; // 终止函数执行}// 显示加载状态,提示用户正在加载数据areaList.innerHTML = '加载中...'; // 在地区列表容器中显示加载提示// 发送请求获取地区列表,使用axios发送HTTP GET请求axios({url: 'http://hmajax.itheima.net/api/area', // API接口地址params: { // 请求参数pname: pname, // 设置省份参数cname // 设置城市参数(注意当属性名和变量名相同时,可以简写)}}).then(response => { // 请求成功的回调函数console.log(response); // 在控制台输出响应数据,便于调试// 获取地区列表数据,从响应对象中提取地区列表const list = response.data.list; // 获取API返回的地区列表数组// 检查是否有数据,处理返回的地区列表if (list && list.length > 0) { // 如果列表存在且不为空// 构建HTML显示地区列表,动态生成地区项目HTMLlet html = ''; // 初始化HTML字符串list.forEach((area, index) => { // 遍历地区列表数组html += `<div class="area-item">${index + 1}. ${area}</div>`; // 为每个地区创建带编号的HTML元素});areaList.innerHTML = html; // 将生成的HTML设置到地区列表容器中} else { // 如果列表为空areaList.innerHTML = '未找到相关地区数据'; // 显示无数据提示}}).catch(error => { // 请求失败的回调函数console.error('获取地区数据失败:', error); // 在控制台输出错误信息areaList.innerHTML = '获取数据失败,请检查输入的省份和城市名称是否正确'; // 显示错误提示});});</script> <!-- JavaScript代码结束 -->
</body></html> <!-- HTML文档结束 -->

效果

在这里插入图片描述

ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍
ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ


http://www.ppmy.cn/server/175754.html

相关文章

【ESP32】ESP-IDF开发 | 经典蓝牙开发 | 蓝牙串口协议(SPP) + 客户端和服务端例程

1. 简介 相信我们最早接触蓝牙&#xff0c;就是在某宝上买一个小巧的蓝牙模块&#xff0c;接到单片机上&#xff0c;通过AT指令进行简单配置&#xff0c;就可以用手机连接该模块&#xff0c;然后远程发送信息给单片机。这里面用到的就是SPP协议&#xff08;Serial Port Protoco…

【JVM】GC 常见问题

GC 常见问题 哪些情况新生代会进入老年代 新生代 GC 后幸存区&#xff08;survivor&#xff09;不够存放存活下来的对象&#xff0c;会通过内存担保机制晋升到老年代。大对象直接进入老年代&#xff0c;因为大对象再新生代之间来会复制会影响 GC 性能。由 -XX:PretenureSizeT…

分享一个sql统计的客户需求

分享个最近的一个需求 领导想要知道各个时间段&#xff0c;各个科室&#xff0c;哪些是预出院的患者&#xff0c;哪些是临时出院的患者&#xff0c;在我看来对于系统来说好像没有什么好的界定方式&#xff0c;我就细问下应该如何界定&#xff08;防止查错背锅&#xff09; 在我…

SpringBoot 集成logback日志链路追踪

项目场景 有时候一个业务调用链场景&#xff0c;很长&#xff0c;调了各种各样的方法&#xff0c;看日志的时候&#xff0c;各个接口的日志穿插&#xff0c;确实让人头大。 为了解决这个痛点&#xff0c;就使用了 TraceId&#xff0c;根据 TraceId 关键字进入服务器查询日志中…

【sql靶场】第15、16关-post提交盲注保姆级教程

目录 【sql靶场】第15、16关-post提交盲注保姆级教程 1.知识回顾 ‌GET请求‌ ‌POST请求‌ or与and 2.第十五关 1.布尔盲注的手动注入 1.判断 2.数据库名长度 3.数据库名字符 4.表名数 5.表名长度 6.表名符 7.字段数 8.字段长度 9.字段符 2.布尔盲注的脚本注入…

ROS实践(五)机器人自动导航(robot_navigation)

目录 一、知识点 1. 定位 2. 路径规划 (1)全局路径规划 (2)局部路径规划 3. 避障 二、常用工具和传感器 三、相关功能包 1. move_base(决策规划) 2. amcl(定位) 3. costmap_2d(代价地图) 4. global_planner(全局规划器) 5. local_planner(局部规划器…

ubuntu24.04执行nvidia-smi报错,实际生产报错,处理过程

报错日志 root@h1-29:/var/nvidia-driver-local-repo-ubuntu2404-570.124.06# nvidia-smi Failed to initialize NVML: Driver/library version mismatch NVML library version: 570.124 解决 NVML 驱动/库版本不匹配 问题的分步指南‌ 根据你的描述,当前系统已安装 570.12…

【医学影像 AI】大型语言模型生成 ROP 患者信息材料的能力

【医学影像 AI】大型语言模型生成 ROP 患者信息材料的能力 0. 论文简介0.1 基本信息0.2 摘要 1. 引言2. 材料与方法2.1 大语言模型的使用2.2 可读性标准2.3 统计分析 3. 结果3.1 Bezirci-Yılmaz可读性评分3.2 Ateşman可读性评分3.3 全面性评分3.4 准确性评分 4. 讨论4.1 可读…