使用 JavaScript 动态生成 Bootstrap 卡片

使用 javascript 动态生成 bootstrap 卡片

本文旨在指导开发者如何利用 JavaScript 动态生成 Bootstrap 卡片,从而更美观、结构化地展示从 API 获取的数据。通过本文,你将学会如何创建包含图片、标题、地址等信息的 Bootstrap 卡片,并将其动态添加到页面中。文章提供详细的代码示例,帮助你快速掌握这一技巧,并将其应用到实际项目中。

前端开发中,经常需要从 API 获取数据,并将其动态地渲染到页面上。Bootstrap 框架提供了丰富的组件,其中卡片(Card)组件非常适合用来展示结构化的信息。本文将介绍如何使用 JavaScript 动态生成 Bootstrap 卡片,以更优雅地展示数据。

创建 Bootstrap 卡片结构

Bootstrap 卡片的基本结构如下:

@@##@@
Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

Go somewhere

要使用 JavaScript 动态生成这样的结构,我们需要创建相应的 HTML 元素,并添加 Bootstrap 提供的 CSS 类。

立即学习“Java免费学习笔记(深入)”;

JavaScript 代码实现

假设我们从 API 获取到以下数据结构:

const restaurant = {  name: "美味餐厅",  imageUrl: "https://example.com/restaurant.jpg",  address: "北京市朝阳区",  distance: "1公里",  rating: 4.5};

以下代码演示了如何使用 JavaScript 将该数据渲染成 Bootstrap 卡片:

function createRestaurantCard(restaurant) {  // 创建卡片容器  const cardElement = document.createElement("div");  cardElement.className = "card";  cardElement.style.width = "18rem"; // 设置卡片宽度,可根据需要调整  // 创建图片元素  const imageElement = document.createElement("img");  imageElement.src = restaurant.imageUrl;  imageElement.className = "card-img-top";  imageElement.alt = restaurant.name;  // 创建卡片主体容器  const cardBodyElement = document.createElement("div");  cardBodyElement.className = "card-body";  // 创建标题元素  const titleElement = document.createElement("h5");  titleElement.className = "card-title";  titleElement.innerText = restaurant.name;  // 创建地址元素  const addressElement = document.createElement("p");  addressElement.className = "card-text";  addressElement.innerText = `地址:${restaurant.address}`;  // 创建距离元素  const distanceElement = document.createElement("p");  distanceElement.className = "card-text";  distanceElement.innerText = `距离:${restaurant.distance}`;    // 创建评分元素  const ratingElement = document.createElement("p");  ratingElement.className = "card-text";  ratingElement.innerText = `评分:${restaurant.rating} 星`;  // 将元素添加到卡片主体  cardBodyElement.appendChild(titleElement);  cardBodyElement.appendChild(addressElement);  cardBodyElement.appendChild(distanceElement);  cardBodyElement.appendChild(ratingElement);  // 将图片和卡片主体添加到卡片容器  cardElement.appendChild(imageElement);  cardElement.appendChild(cardBodyElement);  return cardElement;}// 获取结果容器const resultsContainer = document.getElementById("results-container");// 创建卡片并添加到容器const card = createRestaurantCard(restaurant);resultsContainer.appendChild(card);

代码解释:

createRestaurantCard(restaurant) 函数: 接收餐厅数据作为参数,用于创建单个卡片。document.createElement(): 用于创建 HTML 元素。element.className: 用于设置元素的 CSS 类,使用 Bootstrap 提供的类名。element.innerText: 用于设置元素的文本内容。element.appendChild(): 用于将元素添加到另一个元素中。获取结果容器: 通过 document.getElementById(“results-container”) 获取页面上用于显示结果的容器元素。创建卡片并添加到容器: 调用 createRestaurantCard() 函数创建卡片,然后使用 appendChild() 将卡片添加到结果容器中。

动态生成多个卡片

如果需要动态生成多个卡片,可以遍历 API 返回的数据数组,为每个数据项调用 createRestaurantCard() 函数,并将生成的卡片添加到结果容器中。

const restaurants = [  { name: "餐厅1", imageUrl: "...", address: "...", distance: "...", rating: 4.0 },  { name: "餐厅2", imageUrl: "...", address: "...", distance: "...", rating: 4.5 },  { name: "餐厅3", imageUrl: "...", address: "...", distance: "...", rating: 5.0 }];restaurants.forEach(restaurant => {  const card = createRestaurantCard(restaurant);  resultsContainer.appendChild(card);});

注意事项

确保已经引入 Bootstrap 的 CSS 文件。根据实际数据结构修改 createRestaurantCard() 函数中的代码。可以根据需要自定义卡片的样式,例如设置背景颜色、字体颜色等。如果图片加载失败,可以设置默认图片。可以添加更多的信息到卡片中,例如电话号码、营业时间等。

总结

通过本文,你学会了如何使用 JavaScript 动态生成 Bootstrap 卡片,并将数据渲染到页面上。这种方法可以让你更灵活地控制页面的内容和样式,从而提升用户体验。在实际项目中,可以根据需要进行修改和扩展,以满足不同的需求。

...

以上就是使用 JavaScript 动态生成 Bootstrap 卡片的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月20日 11:38:54
下一篇 2025年12月20日 11:39:08

相关推荐

  • 如何利用Web Components技术创建可复用的自定义HTML元素?

    Web Components 通过自定义元素、影子 DOM 和 HTML 模板实现可复用、封装良好的独立组件。1. 使用 customElements.define() 注册带连字符的自定义标签;2. 类继承 HTMLElement 定义行为;3. 在构造函数中用 this.attachShadow…

    2025年12月20日
    000
  • 提升HTML5 Canvas 2D性能的终极指南

    本文旨在解决HTML5 Canvas 2D渲染性能瓶颈,特别是在处理大量图块时。通过优化GPU状态更改、利用CPU直接操作像素数据、使用Web Workers或生成器函数避免阻塞主线程,以及优化噪声算法,本文提供了一系列实用的技巧和代码示例,帮助开发者显著提升Canvas 2D应用的性能和用户体验。…

    2025年12月20日
    000
  • 在动态生成的HTML表格中实现星级评分

    本文档旨在解决在动态生成的HTML表格中实现星级评分时遇到的问题,重点讲解如何确保每个表格行中的星级评分组件独立工作,互不影响。通过修改HTML元素的id和name属性,使每个评分组件具有唯一标识符,从而实现独立评分功能。 问题分析 在动态生成的HTML表格中,如果每个表格行中的星级评分组件的 id…

    2025年12月20日
    000
  • 在Node.js中访问和修改CSS规则:JSDOM与CSS AST解析

    在node.js环境中处理css规则不同于浏览器dom操作。本文将介绍两种主要方法:一是利用jsdom模拟浏览器环境,实现对`document.stylesheets`等dom api的访问;二是采用csstree库进行css抽象语法树(ast)解析,实现对css内容的深度分析、转换与生成。这两种方…

    2025年12月20日
    000
  • 如何在客户端安全地创建 Stripe Payment Link

    本文探讨了在纯静态网站环境下,如何在不暴露 Stripe Secret Key 的前提下,动态生成 Stripe Payment Link 的问题。由于 Stripe API 的安全机制限制,直接在客户端创建 Payment Link 存在安全风险。本文提供了两种替代方案:预先生成固定 Paymen…

    2025年12月20日
    000
  • JavaScript地理信息系统

    JavaScript GIS利用Web技术实现地图展示与空间分析,主流库包括Leaflet、OpenLayers、Mapbox GL JS和Google Maps API,支持地图加载、标记添加、GeoJSON渲染、交互操作及后端集成,可结合React、Vue等框架应用于城市规划、物流追踪、环境监测…

    2025年12月20日
    000
  • 如何在HTML文件中添加图片(Flask应用)

    本文旨在指导开发者如何在Flask框架下,正确地在HTML文件中嵌入本地图片。通过调整项目目录结构,并使用正确的路径引用方式,确保图片能够成功显示在网页上。本文将提供详细步骤和示例代码,助你解决图片显示问题。 在使用Flask框架开发Web应用时,经常需要在HTML页面中展示图片。如果图片文件位于本…

    2025年12月20日 好文分享
    000
  • JavaScript WebRTC实时通信开发

    WebRTC通过RTCPeerConnection、RTCDataChannel和getUserMedia实现浏览器间音视频通话与数据传输,需借助信令服务器交换SDP和ICE信息,完成点对点连接后即可传输媒体流或文本文件。 WebRTC(Web Real-Time Communication)是一项…

    2025年12月20日
    000
  • JavaScript地理定位服务开发

    JavaScript地理定位通过Geolocation API获取用户位置,需用户授权并在HTTPS环境下运行;使用getCurrentPosition()获取当前位置,watchPosition()持续监听位置变化,需处理用户拒绝、信号弱或超时等错误,并合理调用clearWatch()停止监听以节…

    2025年12月20日
    000
  • 前端自动化测试架构设计

    前端自动化测试架构需分层覆盖单元、组件、E2E和视觉回归测试,采用Vitest、Playwright等工具统一配置,集成CI/CD实现覆盖率报告与结果追踪,并通过页面对象模型、data-testid定位及定期维护提升可维护性。 前端自动化测试架构设计的核心是确保代码质量、提升开发效率,并在持续集成流…

    2025年12月20日
    000
  • JavaScript WebAssembly交互机制

    JavaScript 与 WebAssembly 通过共享内存、函数调用和数据传递实现高效协作:JS 调用 WASM 导出函数处理高性能任务,WASM 借助导入的 JS 函数操作 DOM;两者通过线性内存交换复杂数据,如字符串以 UTF-8 编码存入共享 ArrayBuffer,由指针定位并用 Te…

    2025年12月20日
    000
  • JavaScript AST操作与转换

    AST是JavaScript代码解析后的树形结构,每个节点代表语法单元,通过操作AST可实现代码转换、分析与生成;利用Babel生态中的@babel/parser、traverse、types和generator工具,能解析、遍历、修改并重新生成代码;例如将箭头函数转为普通函数或删除console.…

    2025年12月20日
    000
  • 如何利用 JavaScript 的 Object.create 方法实现纯净的原式继承?

    使用Object.create可实现纯净原型继承,关键在于避免构造函数副作用。它直接以指定对象为原型创建新对象,不调用构造函数,仅继承原型上的属性和方法,从而更干净可控。通过Object.create(proto)创建新对象,proto作为新对象的原型,适合纯粹的原型链继承。示例中animalPro…

    2025年12月20日
    000
  • Web组件开发与Shadow DOM深入

    Shadow DOM是Web组件中实现样式与结构封装的核心技术,通过attachShadow方法为元素挂载独立的影子树,形成隔离的DOM作用域,确保内部样式和结构不被外部影响,同时支持slot机制实现内容分发,提供开放(open)和封闭(closed)两种模式以控制访问权限,其中open模式允许通过…

    2025年12月20日
    000
  • 服务端渲染原理与同构应用开发

    服务端渲染(SSR)通过在服务器生成完整HTML提升首屏速度与SEO,同构架构使代码可在服务端与客户端共享;其流程包括路由匹配、组件渲染、HTML生成与状态注入,浏览器接收后即时展示并由客户端框架“激活”交互;关键挑战在于规避浏览器API、生命周期差异、数据预取同步及样式处理,Next.js、Nux…

    2025年12月20日
    000
  • JavaScript 的国际化 API 如何帮助应用实现多语言和本地化格式?

    Intl API 提供日期、数字、货币和排序的本地化支持,通过 DateTimeFormat、NumberFormat 和 Collator 实现多语言适配,结合 navigator.language 检测区域设置,提升全球化应用体验。 JavaScript 的国际化 API(Intl)为开发者提供…

    2025年12月20日
    000
  • JavaScript正则表达式高级技巧

    答案:文章介绍了JavaScript正则表达式的四个高级技巧:1. 使用分组捕获与反向引用可识别重复结构并提升代码可读性;2. 零宽断言(前瞻与后瞻)用于精确匹配上下文环境而不消耗字符;3. 惰性匹配结合贪婪控制能避免过度捕获,适用于HTML标签等场景;4. 动态构建正则表达式可通过RegExp构造…

    2025年12月20日
    000
  • 函数式编程库Lodash源码解析

    Lodash通过模块化架构、惰性求值机制提升性能,支持函数重载、柯里化与偏应用,结合类型判断与缓存优化,实现高效灵活的工具库设计。 Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库,提供了大量对数组、对象、字符串等数据类型的便捷操作方法。其源码设计精巧,充分体现了函数式…

    2025年12月20日
    000
  • 如何通过JavaScript实现高级的浏览器存储方案?

    答案:现代Web开发需结合IndexedDB、统一接口、安全控制与Service Worker实现高效存储。首先使用IndexedDB处理大规模结构化数据,支持事务与索引;其次封装兼容IndexedDB、localStorage及内存的统一存储层,确保降级可用;再通过加密、过期机制和CSP增强安全性…

    2025年12月20日
    000
  • JavaScript元编程深入解析

    答案是JavaScript元编程通过Proxy、Reflect和属性描述符在运行时动态控制对象行为,例如使用Proxy的set拦截器可实现负数自动转0的数值容器。 JavaScript元编程指的是在运行时修改或扩展对象行为的能力,它让开发者能更灵活地控制程序结构。核心在于操作对象的属性、方法以及其底…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信