• 使用JQ获取并渲染三级联动分类数据


    数据JSON格式

    代码

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>Documenttitle>
    7. head>
    8. <body>
    9. <select name="" id="cateOne">
    10. select>
    11. <select name="" id="cateTwo">
    12. select>
    13. <select name="" id="cateThree">
    14. select>
    15. <script src="https://code.jquery.com/jquery-1.12.4.min.js">script>
    16. <script>
    17. var cateOption = []// 初始化一个空数组用于存储所有分类的子分类数据
    18. $(document).ready(function () {
    19. var optionOneId;
    20. // 渲染一级分类数据
    21. function renderCate() {
    22. //获取select元素
    23. var $select = $('#cateOne');
    24. // 遍历
    25. $.each(cateOption, function (index, cate) {
    26. var $option = $(")
    27. .val(cate.categoryId)
    28. .text(cate.categoryName);
    29. $select.append($option)
    30. });
    31. $select.val(cateOption[0].categoryId);
    32. getCateTwoData(0)//获取对应二级分类
    33. }
    34. // 根据一级分类ID获取对应的二级分类数据
    35. function getCateTwoData(optionOneId) {
    36. cateTwoData = cateOption[optionOneId].categoryChild
    37. // console.log(cateTwoData);
    38. renderCateTwo(cateTwoData);
    39. }
    40. //渲染二级分类数据
    41. function renderCateTwo(cateTwoData) {
    42. var $select = $('#cateTwo');
    43. // 清空之前的二级分类选项
    44. $select.empty();
    45. // 遍历二级分类数据并渲染到#cateTwo中
    46. $.each(cateTwoData, function (index, cate) {
    47. // console.log(index, 'idnex');
    48. var $option = $(")
    49. .val(cate.categoryId)
    50. .text(cate.categoryName);
    51. $select.append($option);
    52. });
    53. //默认选中第一个二级分类
    54. $select.val(cateTwoData[0].categoryId);
    55. getCateThreeData(0)
    56. }
    57. // 根据二级分类ID获取对应的三级分类数据
    58. function getCateThreeData(optionTwoIndex) {
    59. var cateThreeData = cateTwoData[optionTwoIndex].categoryChild
    60. // console.log(cateThreeData,'cateThreeDatacateThreeDatacateThreeData');
    61. rendercateThree(cateThreeData);
    62. }
    63. function rendercateThree(cateThreeData) {
    64. var $select = $('#cateThree');
    65. // 清空之前的二级分类选项
    66. $select.empty();
    67. // 遍历二级分类数据并渲染到#cateTwo中
    68. $.each(cateThreeData, function (index, cate) {
    69. // console.log(index, 'idnex');
    70. var $option = $(")
    71. .val(cate.categoryId)
    72. .text(cate.categoryName);
    73. $select.append($option);
    74. });
    75. }
    76. $.ajax({
    77. url: 'http://sph-h5-api.atguigu.cn/api/product/getBaseCategoryList',
    78. type: 'get',
    79. dataType: 'json', // 假设返回的是 JSON 数据
    80. success: function (res) {
    81. console.log(res.data);
    82. cateOption = res.data;
    83. renderCate();
    84. }
    85. })
    86. // 获取点击一级分类option的id
    87. $('#cateOne').on('change', function () {
    88. var optionOneId = $(this).prop('selectedIndex');
    89. getCateTwoData(optionOneId)
    90. })
    91. // 获取点击二级分类option的id
    92. $('#cateTwo').on('change', function () {
    93. var optionTwoIndex = $(this).prop('selectedIndex');
    94. console.log(optionTwoIndex);
    95. getCateThreeData(optionTwoIndex)
    96. })
    97. });
    98. script>
    99. body>
    100. html>

    页面展示:

    备注:仅练习,没有优化,如果有更简洁的代码可以讨论

  • 相关阅读:
    跨越编程界限:C++到JavaSE的平滑过渡
    【大模型应用极简开发入门(1)】LLM概述:LLM在AI中所处位置、NLP技术的演变、Transformer与GPT、以及GPT模型文本生成逻辑
    两路RS485转4GMQTT协议云网关
    Spring-依赖注入findAutowireCandidates源码实现
    SpringBoot统一返回处理出现cannot be cast to java.lang.String异常
    XSCTF联合招新【真是阳间题】(MSIC+Crypto)
    system verilog rand randc constraint randomize
    python过滤非法字符
    [RK3568][Android11] Android音量控制流程
    一文读懂css【css3】绝对(absolute)定位和相对(relative)定位 相对定位是相对谁定位的 绝对定位又是根据谁绝对定位的 子绝父相 包含块
  • 原文地址:https://blog.csdn.net/qq_44866810/article/details/133084163