Web实现名言生成器:JavaScript DOM基础与实例教程

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

在这里插入图片描述

文章目录

  • Web实现名言生成器:JavaScript DOM基础与实例教程
    • JavaScript DOM基础
    • 实例:名言生成器
      • 实现效果
      • 创建HTML结构
      • 编写JavaScript逻辑
        • 初始化名言列表
        • 获取随机名言
        • 更新名言显示
      • 样式美化
    • 全部代码
    • 结语
    • 🎉 往期精彩回顾

Web实现名言生成器:JavaScript DOM基础与实例教程

名言生成器是一个简单而有趣的Web应用,它可以随机显示历史上著名人物的名言。通过这个教程,我们将学习如何使用JavaScript DOM API来实现这个功能,并介绍相关的JavaScript DOM基础知识。

JavaScript DOM基础

DOM(Document Object Model)是HTML文档的编程接口,它允许我们通过JavaScript访问和操作网页元素。在JavaScript中,我们可以使用DOM API来获取元素、修改内容、绑定事件等。

实例:名言生成器

实现效果

在这里插入图片描述
体验地址:

http://8.210.131.139/QuoteGenerator.html

创建HTML结构

首先,我们需要创建一个包含名言显示区域和生成按钮的HTML结构。

<div class="quote-box"><p class="text">这是名言部分</p><p class="author">我是作者</p><button id="new-quote">生成名言</button><a class="tweet-quote" href="https://blink.csdn.net/">分享到 CSDN&Blink</a>
</div>

编写JavaScript逻辑

初始化名言列表

在JavaScript中,我们首先定义一个包含名言和作者的数组。

const quotes = [{quote: "生命不止,奋斗不息。",author: "方志敏",},{quote: "知识就是力量。",author: "李约瑟",},// ... 更多名言和作者列表 ...
];
获取随机名言

定义getRandomQuote函数来从名言列表中随机获取一条名言。

function getRandomQuote() {const index = Math.floor(Math.random() * quotes.length);return quotes[index];
}
更新名言显示

定义一个事件监听器,当用户点击“生成名言”按钮时,调用getRandomQuote函数获取新的名言,并更新页面上的内容。

document.querySelector("#new-quote").addEventListener("click", function () {const quote = getRandomQuote();const textElement = document.querySelector(".text");const authorElement = document.querySelector(".author");textElement.innerText = quote.quote;authorElement.innerText = `- ${quote.author}`;
});

样式美化

为了让名言生成器看起来更美观,我们可以添加一些CSS样式。

/* ... 样式代码 ... */.quote-box {width: 500px;margin: 100px auto;padding: 30px;border-radius: 5px;box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.2);}.text {font-size: 24px;font-style: italic;margin-bottom: 20px;}.author {font-size: 18px;text-align: right;}#new-quote {background-color: #4caf50;color: #fff;border: none;padding: 10px 20px;margin-top: 20px;border-radius: 5px;cursor: pointer;}.tweet-quote {display: block;text-align: right;margin-top: 10px;color: #4caf50;}

全部代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>洛可可白😁名言生成器</title><style>.quote-box {width: 500px;margin: 100px auto;padding: 30px;border-radius: 5px;box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.2);}.text {font-size: 24px;font-style: italic;margin-bottom: 20px;}.author {font-size: 18px;text-align: right;}#new-quote {background-color: #4caf50;color: #fff;border: none;padding: 10px 20px;margin-top: 20px;border-radius: 5px;cursor: pointer;}.tweet-quote {display: block;text-align: right;margin-top: 10px;color: #4caf50;}</style></head><body><div class="quote-box"><p class="text">这是文言部分</p><p class="author">我是作者</p><button id="new-quote">生成名言</button><a class="tweet-quote" href="https://blink.csdn.net/">分享到 CSDN&Blink</a></div></body><script>const quotes = [{quote: "生命不止,奋斗不息。",author: "方志敏",},{quote: "知识就是力量。",author: "李约瑟",},{quote: "先苦后甜,后苦变甜;先甜后苦,后甜变苦。",author: "林语堂",},{quote: "成功是一份耕耘,而非一次得手。",author: "贾平凹",},{quote: "宝剑锋从磨砺出,梅花香自苦寒来。",author: "陆游",},{quote: "宝剑不磨,其锋不利;人不学习,其智不明。",author: "李光耀",},{quote: "一份耕耘,一份收获;一份付出,一份回报。",author: "王阳明",},{quote: "只要功夫深,铁杵磨成针。",author: "李白",},{quote: "有志者事竟成。",author: "龚自珍",},{quote: "天道酬勤。",author: "韩愈",},{quote: "千里之行始于足下。",author: "老子",},{quote: "路漫漫其修远兮,吾将上下而求索。",author: "屈原",},{quote: "读书破万卷,下笔如有神。",author: "李白",},{quote: "吃一堑,长一智。",author: "佚名",},{quote: "先天下之忧而忧,后天下之乐而乐。",author: "范仲淹",},{quote: "一寸光阴一寸金,寸金难买寸光阴。",author: "陈毅",},{quote: "不积跬步,无以至千里;不积小流,无以成江海。",author: "荀子",},{quote: "前事不忘,后事之师。",author: "司马迁",},{quote: "生命中最大的浪费是把时间浪费在了等待上。",author: "李开复",},];function getRandomQuote() {const index = Math.floor(Math.random() * quotes.length);return quotes[index];}document.querySelector("#new-quote").addEventListener("click", function () {const quote = getRandomQuote();const textElement = document.querySelector(".text");const authorElement = document.querySelector(".author");textElement.innerText = quote.quote;authorElement.innerText = `- ${quote.author}`;});</script>
</html>

结语

通过上述步骤,我们实现了一个简单的名言生成器。这个实例展示了如何使用JavaScript DOM API来操作HTML元素,并响应用户事件。通过这个项目,你可以更好地理解DOM操作的基本概念和方法,以及如何在实际项目中应用它们。名言生成器是一个入门级的编程项目,适合初学者练习和提升编程技能。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

🎉 往期精彩回顾

Web实现表格单选全选与反选操作:JavaScript DOM基础与实例教程

  • 688阅读 · 14点赞 · 7收藏

H5实现Web ECharts教程:轻松创建动态数据图表

  • 855阅读 · 16点赞 · 4收藏

浏览器DOM操作基础:禁用右键菜单与阻止文字选中

  • 878阅读 · 30点赞 · 18收藏

缤纷浏览器 —— 一键换肤,个性随心换(H5实现浏览器换肤效果)

  • 560阅读 · 9点赞 · 5收藏

广州5k前端面试题惊呆我!!!(内容太肝,谨慎入内)

  • 821阅读 · 27点赞 · 23收藏

计算机专业学生的成长之路:超越课堂的自我提升策略

  • 732阅读 · 30点赞 · 25收藏

Node.js快速入门:搭建基础Web服务器与实现CRUD及登录功能

  • 906阅读 · 31点赞 · 16收藏

Node.js核心命令与工具:提升开发效率的实用指南

  • 745阅读 · 11点赞 · 18收藏

爆肝五千字!ECMAScript核心概念与现代JavaScript特性全解析

  • 1299阅读 · 25点赞 · 30收藏

打造精美响应式CSS日历:从基础到高级样式

  • 1082阅读 · 14点赞 · 19收藏

Ubuntu系统下C语言开发环境搭建与使用教程

  • 1337阅读 · 35点赞 · 9收藏

Vue 3响应式系统详解:ref、toRefs、reactive及更多

  • 1193阅读 · 23点赞 · 14收藏

爆肝两千字!掌握CSS选择器与响应式设计:从基础到高级应用

  • 1061阅读 · 27点赞 · 28收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-安装redis

安装指令 sudo apt-get install redis-server 启动服务 sudo systemctl start redis 查找redis路径 find / -name "filename" linux redis修改密码 sudo nano /etc/redis/redis.conf 找到 "requirepass" 这一行&#xff0c;取消注释并设置新的密码&…

跳蚱蜢(蓝桥杯)

文章目录 跳蚱蜢题目描述答案&#xff1a;20bfs 跳蚱蜢 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff1a; 有 9 只盘子&#xff0c;排成 1 个圆圈。 其中 8 只盘子内装着 8 只蚱蜢&#xff…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题&#xff0c;编程计算以下8个数据的和&#xff0c;结果存在ax 寄存器中&#xff1a;0123H&#xff0c;0456H&#xff0c;07…

自动驾驶技术中大模型的应用与挑战分析

自动驾驶技术中大模型的应用与挑战分析 1. 背景介绍 自动驾驶技术是近年来人工智能领域的研究热点&#xff0c;它通过计算机视觉、传感器融合、决策规划等技术的综合应用&#xff0c;实现车辆的自主驾驶。随着深度学习技术的快速发展&#xff0c;大模型在自动驾驶领域得到了广…

电机无感算法采集电流的作用

电机无感算法中采集电流的作用是通过测量电机终端的电流&#xff0c;从中获得电机的状态信息&#xff0c;进而实现对电机旋转位置的估算。 采集电流的作用有以下几个方面&#xff1a; 电机模型建立&#xff1a;通过测量电流&#xff0c;可以获得电机的输入量和输出量之间的关系…

ctfshow web入门 反序列化

254 分析代码&#xff1a; 如果用户名和密码参数都存在&#xff0c;脚本会创建一个 ctfShowUser 类的实例 $user。 接着&#xff0c;调用 $user->login($username, $password) 方法尝试登录。如果登录成功&#xff08;即用户名和密码与类中的默认值匹配&#xff09;&#…

甲方信息安全建设经验

网络系统安全建设 安全域划分 内部网络系统&#xff1a;主要指OA办公网内部、生产网内部、测试开发网内部、以及其他内部网络系统。 外部网络系统&#xff1a;主要指OA办公网互联网边界、生产网互联网边界、测试开发网互联网边界、互联网上相关所属的网络系统&#xff08;不…

地图爬虫工具 百度高德腾讯地图商家电话采集软件使用指南

使用地图爬虫工具可以方便地从百度、高德、腾讯地图等地图服务中获取商家的电话号码。下面是使用指南&#xff0c;并附带代码示例。 使用地图爬虫工具之前&#xff0c;我们需要安装相关的依赖库。建议使用Python作为开发语言&#xff0c;因为Python有一些非常好用的爬虫库可供…

详解机器学习概念、算法

目录 前言 一、常见的机器学习算法 二、监督学习和非监督学习 三、常见的机器学习概念解释 四、深度学习与机器学习的区别 基于Python 和 TensorFlow 深度学习框架实现简单的多层感知机&#xff08;MLP&#xff09;神经网络的示例代码&#xff1a; 欢迎三连哦&#xff01; 前言…

Spark Map 和 FlatMap 的比较

Spark Map 和 FlatMap 的比较 本节将介绍Spark中map(func)和flatMap(func)两个函数的区别和基本使用。 函数原型 map(func) 将原数据的每个元素传给函数func进行格式化&#xff0c;返回一个新的分布式数据集。 flatMap(func) 跟map(func)类似&#xff0c;但是每个输入项和…

JUC(二)

1、wait notify Owner 线程发现条件不满足&#xff0c;调用 wait 方法&#xff0c;即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 WAITING 的线程都处于阻塞状态&#xff0c;不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用 …

Gelato Network的创始人HILMAR ORTH确认出席HackSummit2024区块链开发者大会

随着Web3技术的日新月异&#xff0c;区块链领域正以前所未有的速度席卷全球。在这一变革的浪潮中&#xff0c;备受瞩目的区块链盛会——Hack.Summit() 2024区块链开发者大会&#xff0c;将于2024年4月9日至10日&#xff0c;在香港数码港隆重登场。这一里程碑式的大会不仅标志着…

#Linux系统编程(read,open,close,write综合练习)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;不传参&#xff0c;指定拷贝文件&#xff0c;指定复制到文件 #include <stdio.h> #include <stdlib.h> #include <sys/typ…

大厂校招,已经在「这些平台」里卷起来了!

如今的校招卷内容&#xff0c;更卷渠道。传统的渠道已然无法满足企业的野心&#xff0c;于是他们将目光投向了主流社交平台。无论是在「微信公众号」、「B站」还是「小红书」&#xff0c;我们都不难发现大厂们「开卷」的身影。那么&#xff0c;参考它们的思路&#xff0c;企业该…

设计模式面试专题

文章目录 请列举出在 JDK 中几个常用的设计模式&#xff1f;什么是设计模式&#xff1f;Java 中什么叫单例设计模式&#xff1f;请用 Java 写出线程安全的单例模式在 Java 中&#xff0c;什么叫观察者设计模式&#xff08;observer design pattern&#xff09;&#xff1f;使用…

富格林:可信要领戒备虚假套路

富格林指出&#xff0c;为避免遭遇虚假套路而造成巨大亏损&#xff0c;投资者需灵活地采用一些可信的交易技巧作为抵抗风险的重要手段。投资者进入市场后&#xff0c;需要的系统学习正规做单技巧&#xff0c;树立正规做单的意识规避虚假套路&#xff0c;提高做单盈利。接下来总…

位运算符与位移运算符

按位与& 两个二进制数字都是1 取1否则取0 按位或I 两个二进制数字都是0取0否则取1 按位取反~如果该位为0则1 &#xff0c;为1取0 按位异或 ^ 相同为零相反为1 移位运算符 有三个: <<, >> ,>>>&#xff0c;都是二元运算符&#xff0c;且都是按…

iPhone 15 Pro LiDAR Module模组逆向(2024.3.23)

iPhone15 Pro出来后,基本上国内所有的模组厂包括舜宇,丘钛等都已经逆向了LiDAR模组,并同时测试了电学,光学,BOM成本等一系列测试。当然市面上最具备影响力的是YOLE的商业评估报告,我这边同时具有这些报告,也有一些自己的见解,当然本篇讲解可能会同时涉及到几个模组厂和…

Python爬虫-批量爬取星巴克全国门店

前言 本文是该专栏的第22篇,后面会持续分享python爬虫干货知识,记得关注。 本文笔者以星巴克为例,通过Python实现批量爬取目标城市的门店数据以及全国的门店数据。 具体的详细思路以及代码实现逻辑,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM…

【前端寻宝之路】JavaScript初学之旅

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-azUa9yH16cRXQUxE {font-family:"trebuchet ms",verdana,arial,sans-serif;f…