jQuery ajax读取本地json文件 三级联动下拉框

要使用jQuery Ajax读取本地JSON文件并更新三级联动下拉框,你需要确保同源策略(Same-origin policy)不会阻止你读取本地文件。在大多数现代浏览器中,直接通过JavaScript读取本地文件是不被允许的,除非页面是本地加载的(即使用file://协议)。

以下是使用jQuery Ajax读取本地JSON文件并更新三级联动下拉框的示例代码:




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三级联动下拉框</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
 
<select id="level1">
    <option value="">选择一级分类</option>
</select>
<select id="level2">
    <option value="">选择二级分类</option>
</select>
<select id="level3">
    <option value="">选择三级分类</option>
</select>
 
<script>
$(document).ready(function() {
    $.ajax({
        url: 'categories.json', // 假设你的JSON文件名为categories.json
        dataType: 'json',
        success: function(data) {
            // 假设你的JSON结构是这样的:
            // [
            //     {
            //         "name": "一级分类1",
            //         "children": [
            //             {
            //                 "name": "二级分类1-1",
            //                 "children": [
            //                     {
            //                         "name": "三级分类1-1-1"
            //                     }
            //                 ]
            //             }
            //         ]
            //     }
            // ]
            var level1 = $('#level1');
            var level2 = $('#level2');
            var level3 = $('#level3');
 
            // 填充一级分类
            $.each(data, function(i, item) {
                level1.append($('<option>').text(item.name).attr('value', i));
            });
 
            level1.change(function() {
                level2.empty();
                level3.empty();
                var selectedLevel1 = $(this).val();
                var level1Children = data[selectedLevel1].children;
                if (level1Children) {
                    $.each(level1Children, function(i, item) {
                        level2.append($('<option>').text(item.name).attr('value', i));
                    });
                }
            });
 
            level2.change(function() {
                level3.empty();
                var selectedLevel2 = $(this).val();
                var level2Children = data[level1.val()].children[selectedLevel2] ? data[level1.val()].children[selectedLevel2].children : null;
                if (level2Children) {
                    $.each(level2Children, function(i, 

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日