如何用JS动态展示基于树形数据的授权平台和期限,并计算价格?

如何用JS动态展示基于树形数据的授权平台和期限,并计算价格?

使用javascript动态展示基于树形数据的授权平台、期限并计算价格

本文介绍如何利用JavaScript处理后台返回的树形数据,动态生成授权平台和期限选择列表,并根据用户选择实时计算最终价格。

数据结构

假设后台返回的数据结构如下:这是一个嵌套数组,每个元素代表一个授权平台,平台对象内包含多个期限对象。

平台对象属性:

title: 平台名称 (字符串)children: 期限对象数组

期限对象属性:

id: 期限ID (数字)platform: 所属平台ID (数字)platform_title: 所属平台名称 (字符串)years: 授权期限(年) (数字)price: 授权价格 (数字)address: 授权地址 (数字,例如:0-不限,1-一年,2-五年)address_title: 授权地址名称 (字符串)show_title: 显示价格 (字符串,例如 “¥100”)

实现步骤

1. HTML结构:

创建一个基本的HTML结构用于显示授权平台、期限和价格:

价格:¥0.00

2. JavaScript代码:

const authorizationDiv = document.getElementById('authorization');const priceSpan = document.getElementById('price');const platformSelect = document.getElementById('platform');const termSelect = document.getElementById('term');// 模拟后台返回的树形数据const platformData = [  { title: "哔哩哔哩", children: [      { id: 1, platform: 1, platform_title: "哔哩哔哩", years: 1, price: 100, address: 1, address_title: "一年", show_title: "¥100" },      { id: 2, platform: 1, platform_title: "哔哩哔哩", years: 5, price: 400, address: 2, address_title: "五年", show_title: "¥400" }    ]  },  { title: "微博", children: [      { id: 3, platform: 2, platform_title: "微博", years: 1, price: 150, address: 1, address_title: "一年", show_title: "¥150" },      { id: 4, platform: 2, platform_title: "微博", years: 5, price: 600, address: 2, address_title: "五年", show_title: "¥600" }    ]  }  // ...更多平台数据];// 填充平台选择列表platformData.forEach(platform => {  const option = document.createElement('option');  option.value = platform.title;  option.text = platform.title;  platformSelect.appendChild(option);});// 更新期限选择列表和价格function updateTermSelectAndPrice() {  const selectedPlatform = platformSelect.value;  const platform = platformData.find(p => p.title === selectedPlatform);  termSelect.innerHTML = ''; // 清空之前的选项  if (platform) {    platform.children.forEach(term => {      const option = document.createElement('option');      option.value = term.id;      option.text = `${term.years}年(${term.address_title})`;      termSelect.appendChild(option);    });  }  // 设置默认价格  priceSpan.textContent = "¥0.00";  // 监听期限选择变化  termSelect.addEventListener('change', () => {    const selectedTermId = termSelect.value;    const selectedTerm = platform.children.find(term => term.id == selectedTermId);    priceSpan.textContent = selectedTerm ? selectedTerm.show_title : "¥0.00";  });}// 监听平台选择变化platformSelect.addEventListener('change', updateTermSelectAndPrice);// 初始化updateTermSelectAndPrice();

这段代码首先创建了HTML元素,然后根据模拟数据填充平台选择列表。updateTermSelectAndPrice函数根据选择的平台更新期限选择列表,并设置默认价格。最后,添加事件监听器来处理平台和期限的选择变化,并实时更新价格显示。 记得将模拟数据替换成你实际从后台获取的数据。

这个改进后的版本更清晰、易于理解和维护,并且更有效地处理了数据和用户交互。 它也避免了直接操作DOM元素的低效做法,提高了代码的可读性和可维护性。

以上就是如何用JS动态展示基于树形数据的授权平台和期限,并计算价格?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1561202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 06:17:03
下一篇 2025年12月22日 06:17:20

相关推荐

  • HTML h标签自带margin导致垂直居中错位怎么办?

    html标题标签自带margin导致垂直居中错位详解 网页布局中, 到 标题标签自带的margin属性常常干扰垂直居中效果。这是因为浏览器默认赋予了这些标签不同的margin值。 解决方法是使用CSS重置样式。 CSS重置(Reset CSS)是一种技术,用于清除所有HTML元素的默认样式。通过重置…

    2025年12月22日
    000
  • 如何仅用CSS动态修改label:after伪类的内容?

    巧用css动态调整label:after伪类内容 前端开发中,常常需要根据不同语言环境调整CSS样式,无需修改JavaScript或DOM。本文介绍如何仅用CSS动态修改label:after伪类内容。 关键在于利用CSS的attr()函数。attr()函数可以获取HTML元素的属性值,并将其作为C…

    2025年12月22日
    000
  • 如何仅用CSS代码为元素添加九层不同颜色的边框?

    纯css打造九层炫彩边框 本文将演示如何仅使用CSS代码,为HTML元素创建九层不同颜色的边框效果,无需修改HTML结构。我们将利用box-shadow属性实现这一目标。 以下代码展示了如何通过堆叠多个box-shadow来创建九层边框: .nine-layer-border { width: 20…

    2025年12月22日
    000
  • 如何使用负外边距让内层div忽略父级padding,实现100%宽度?

    巧用负外边距,让内层div突破父级padding限制,完美实现100%宽度 本文将讲解如何使用CSS负外边距(margin)属性,让内层div元素忽略父元素的内边距(padding)影响,从而实现100%的宽度。 理解HTML元素的盒模型是关键: 内容区 (content): 元素内容本身占据的区域…

    2025年12月22日
    000
  • 如何用JavaScript正则表达式解析并移除CSS中的margin属性?

    javascript正则表达式:高效解析和移除css margin属性 前端开发中,经常需要处理HTML元素的样式属性。本文介绍如何利用JavaScript正则表达式,精准解析并移除CSS中的margin属性,从而简化样式操作。 正则表达式匹配策略 margin属性的书写方式主要有两种: 简写形式:…

    2025年12月22日
    000
  • 如何优化批量生成二维码打包下载的性能?

    高效处理批量二维码生成与下载 使用QRCode.js生成大量二维码并结合HTML2Canvas、JSZip和FileSaver进行打包下载时,当二维码数量超过一定规模,性能瓶颈便会显现。本文提供专家级优化方案,助您提升效率。 摒弃HTML2Canvas,直取二维码数据 HTML2Canvas的CSS…

    2025年12月22日
    000
  • Avue按钮失效了,是什么原因导致的以及如何解决?

    avue按钮失效排查及修复指南 在Avue框架中,按钮失效是一个常见问题,尤其是在修改CSS样式后。本文将分析可能原因并提供相应的解决方法。 问题分析:按钮失效的原因 开发者在调整Avue CSS样式后,按钮点击事件失效,这通常是因为样式修改影响了按钮的交互行为。Avue框架依赖特定的CSS样式来实…

    2025年12月22日
    000
  • JavaScript正则表达式如何匹配并去除HTML元素中的margin样式?

    javascript 正则表达式:高效移除html元素中的margin样式 本文介绍如何使用JavaScript正则表达式精准匹配并移除HTML元素中的margin样式,涵盖简写margin:格式和长格式margin-(top|bottom|left|right):格式。 以下正则表达式能够同时匹配…

    2025年12月22日
    000
  • 为什么我的JS onclick事件在Chrome和Safari浏览器中失效?

    chrome和safari浏览器中js onclick事件失效的原因及解决方法 在JavaScript中,使用onclick事件处理程序是一个常见的操作,但有时在Chrome和Safari浏览器中可能会失效。例如,以下代码在点击按钮后不会弹出警告框或在控制台中打印”Good”…

    2025年12月22日
    000
  • JavaScript中outerHTML和innerHTML的区别在哪里?如何正确地在元素后添加HTML内容?

    深入理解outerhtml和innerhtml JavaScript中的outerHTML和innerHTML属性用于操作HTML元素及其内容。它们的关键区别在于: outerHTML: 获取或设置元素及其所有子元素的完整HTML代码,包含元素自身标签。innerHTML: 获取或设置元素的子元素H…

    2025年12月22日
    000
  • 点击按钮出现黑色边框是什么原因?如何解决?

    网页按钮点击后出现黑色边框的解决方法 许多网页开发者都遇到过这个问题:按钮点击后,周围出现意料之外的黑色边框,这并非border或padding属性导致的。 造成此现象的原因是HTML元素的outline属性。当元素获得焦点时,outline属性定义其边框样式。默认情况下,outline为黑色,导致…

    2025年12月22日
    000
  • outerHTML和innerHTML有什么区别?如何用它们操作HTML元素?

    深入理解outerhtml与innerhtml 在HTML文档中,outerHTML和innerHTML属性用于操作HTML元素的内容,但它们作用的范围有所不同: outerHTML: 获取或设置元素及其所有子元素的完整HTML代码。这意味着它包含了元素本身的标签以及其内部所有内容。 innerHT…

    2025年12月22日
    000
  • JavaScript中outerHTML与innerHTML的区别:如何正确地在元素后追加内容?

    理解outerhtml和innerhtml JavaScript 提供了outerHTML和innerHTML属性来操作HTML元素。outerHTML包含元素自身及其所有子元素的完整HTML代码,而innerHTML只包含元素内部的HTML代码。 两者在使用上存在关键区别。 常见误区及解决方案 许…

    2025年12月22日
    000
  • HTML阴影效果和边框的区别是什么

    HTML阴影效果和边框有着本质区别:阴影不占据页面空间,而边框是元素的物理边界。阴影通过绘制颜色区域模拟光影增强层次感,边框则直接影响元素尺寸和布局。理解两者的区别和工作原理,高级技巧包括多重阴影、内阴影和性能优化。掌握这些知识,可以提升网页设计技能和美观度。 HTML阴影效果和边框,你真的懂吗? …

    2025年12月22日
    000
  • HTML如何设置hover时的阴影效果

    通过CSS的box-shadow属性,可以在网页元素悬停时呈现立体感和光影效果。该属性语法为:box-shadow: h-shadow v-shadow blur spread color inset;其中h-shadow和v-shadow控制阴影偏移,blur控制模糊度,spread控制扩散度,c…

    2025年12月22日
    000
  • HTML如何为导航栏添加阴影效果

    通过使用CSS的box-shadow属性,可以轻松地给HTML导航栏添加阴影,从而提升其层次感和视觉效果。该属性的语法包括水平偏移、垂直偏移、模糊半径、扩散半径和颜色,可以根据需要进行调整。通过组合不同的box-shadow值,还可以创建更丰富的多层阴影效果。注意避免样式冲突和过度使用,以保证页面性…

    2025年12月22日
    000
  • HTML如何为卡片添加阴影效果

    使用CSS的box-shadow属性可以为HTML卡片添加阴影效果,提升网页设计水平。该属性语法为box-shadow: h-shadow v-shadow blur spread color inset;,参数包括水平/垂直偏移量、模糊半径、扩散半径、颜色和内嵌阴影选项。通过组合不同的参数,可以创…

    2025年12月22日 好文分享
    000
  • HTML如何为表单添加阴影效果

    给你的表单加点阴影,让它更酷炫! 你肯定想过,怎么让网页表单看起来更吸引人,更脱颖而出? 答案很简单:阴影! 这篇文章会带你一步步地用html和css给你的表单添加炫酷的阴影效果,并且深入探讨一些你可能遇到的问题和最佳实践。 读完之后,你不仅能轻松搞定表单阴影,还能提升你的前端功力,写出更优雅的代码…

    好文分享 2025年12月22日
    000
  • HTML阴影效果如何进行调试

    HTML 阴影调试的秘诀:理解盒模型和层叠上下文如何影响阴影效果。熟练掌握 box-shadow 属性参数,包括顺序、值类型和参数个数。注意 rgba 透明度对阴影颜色的影响。考虑其他 CSS 属性与阴影的潜在冲突,如 overflow、transform 和 position。了解不同浏览器对 b…

    2025年12月22日
    000
  • HTML如何设置内阴影

    利用CSS的box-shadow属性,通过inset关键字和负值偏移量,就能轻松实现HTML内阴影效果。box-shadow参数包括水平偏移量、垂直偏移量、模糊半径、扩展半径和颜色。通过叠加不同的内阴影,可以创造出更丰富的视觉效果。需要注意的是,过大的模糊半径或不合适的颜色可能会影响视觉效果或可读性…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信