Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
JavaScript动态DOM操作:基于用户输入显示与清除图片教程_创想鸟

JavaScript动态DOM操作:基于用户输入显示与清除图片教程

JavaScript动态DOM操作:基于用户输入显示与清除图片教程

本教程详细阐述如何使用JavaScript根据用户输入动态地在网页中插入、替换和清除图片。我们将涵盖HTML结构、JavaScript核心逻辑,包括DOM元素的获取、创建与操作,同时强调常见的错误(如innerHtml拼写错误)及现代JavaScript的最佳实践,确保代码的健壮性和可维护性。

1. HTML结构准备

首先,我们需要一个基础的html结构来承载用户输入、触发操作的按钮以及显示动态内容的区域。以下是一个简单的表格布局,其中包含一个输入框、两个按钮和一个用于显示图片的段落元素。

            动态图片显示            table {            border-collapse: collapse;            width: 100%;        }        td {            border: 1px solid #ddd;            padding: 8px;            text-align: center;        }        #middleCell {            min-height: 50px; /* 确保有足够空间显示图片 */            display: flex;            align-items: center;            justify-content: center;        }        #middleCell img {            max-width: 100px; /* 限制图片大小 */            height: auto;        }        

等待输入...

在这个结构中:

input1:用于接收用户输入的数字。leftButton:点击后会调用fruitTest()函数,根据输入值显示图片。middleCell:一个

元素,其内容将根据JavaScript逻辑动态更新为图片或清空。

clearButton:点击后会调用clearBox()函数,清空middleCell的内容。

2. JavaScript核心逻辑:DOM操作与事件处理

JavaScript代码将负责获取HTML元素、监听用户交互事件、读取输入值,并根据条件动态地创建、修改或移除DOM元素。

// script.js// 定义图片URL,使用 const 声明常量是现代JavaScript的最佳实践const appleImgUrl = "https://codehs.com/uploads/afcd3bf7ea7baf3f7d571c6e24c352af";const pearImgUrl = "https://codehs.com/uploads/e0c442f8c020685fc8016f15c2547f1e";// 获取需要操作的DOM元素const middleCell = document.getElementById('middleCell');const inputElement = document.getElementById('input1'); // 提前获取输入框元素/** * 根据用户输入的值,在 middleCell 中显示对应的图片。 */function fruitTest() {    // 获取输入框的当前值,注意 input.value 总是返回字符串,需要转换为数字进行比较    const inputValue = parseFloat(inputElement.value);    // 创建一个新的图片元素    const img = document.createElement('img');    let imageSet = false; // 标志位,表示是否设置了图片    if (inputValue > 100) {        img.src = appleImgUrl;        img.alt = "苹果图片"; // 添加alt属性以提高可访问性        imageSet = true;    } else if (inputValue < 0) {        img.src = pearImgUrl;        img.alt = "梨子图片"; // 添加alt属性以提高可访问性        imageSet = true;    } else {        // 如果输入不符合条件,可以清空或显示默认信息        middleCell.innerHTML = '请输入大于100或小于0的数字。';        return; // 不进行后续的图片插入操作    }    // 在插入新图片之前,先清空 middleCell 的所有现有内容    // 这是一个关键步骤,确保每次只显示一张图片    middleCell.innerHTML = '';     // 将创建的图片元素添加到 middleCell 中    if (imageSet) {        middleCell.appendChild(img);    }} /** * 清空 middleCell 的内容。 */function clearBox() {    middleCell.innerHTML = '';    // 清空输入框的值    inputElement.value = '';    // 恢复默认提示    middleCell.innerHTML = '等待输入...';}

代码解析与改进点:

变量声明: 推荐使用 const 声明常量(如图片URL和DOM元素引用),使用 let 声明可能改变值的变量。这有助于代码的可读性和维护性,避免意外的变量重新赋值。获取元素: 使用 document.getElementById() 获取HTML元素。为了避免重复获取,可以将经常使用的元素(如middleCell和input1)在脚本开始时获取并存储为常量。获取输入值: inputElement.value 获取的是字符串类型。在进行数值比较前,应使用 parseFloat() 或 parseInt() 将其转换为数字。DOM操作的正确姿势:innerHTML vs innerHtml: 这是一个常见的拼写错误。JavaScript中正确的属性名是 innerHTML(驼峰命名法,H大写)。原始问题中出现的 innerHtml 是一个典型的错别字,导致功能失效。动态创建元素: 不建议将整个 JavaScript动态DOM操作:基于用户输入显示与清除图片教程 标签作为字符串硬编码。更推荐的做法是使用 document.createElement(‘img’) 创建一个 JavaScript动态DOM操作:基于用户输入显示与清除图片教程 元素,然后通过设置其 src 属性来指定图片源。这种方式更安全,避免了潜在的XSS攻击,并且在处理更复杂的元素属性时也更灵活。清空与追加: 在每次显示新图片之前,使用 middleCell.innerHTML = ”; 清空目标容器的现有内容。然后使用 middleCell.appendChild(img); 将新创建的图片元素添加到容器中。这确保了容器中只有一个图片,并且旧图片被正确移除。用户体验: 在clearBox函数中,不仅清空了图片区域,还清空了输入框的值,并恢复了默认提示,提升了用户体验。

3. 最佳实践与注意事项

使用 const 和 let: 优先使用 const 声明不会重新赋值的变量,使用 let 声明可能改变值的变量。避免使用 var,因为它存在变量提升和作用域问题。避免 innerHTML 拼接复杂HTML: 对于简单的文本内容,innerHTML 效率高。但当需要插入复杂结构或用户提供的内容时,应优先使用 document.createElement()、appendChild() 等方法。这不仅提高了安全性,防止XSS攻击,也使代码更易于维护。事件监听: 虽然 onclick 属性在HTML中直接绑定事件简单明了,但在更复杂的应用中,推荐使用 element.addEventListener(‘click’, function)。这允许为一个元素绑定多个事件处理器,并且将JavaScript行为与HTML结构分离,使代码更模块化。

// 示例:使用 addEventListener// document.getElementById('leftButton').addEventListener('click', fruitTest);// document.getElementById('clearButton').addEventListener('click', clearBox);

错误处理与用户反馈: 在实际应用中,应考虑输入验证(例如,确保输入的是有效数字)、图片加载失败时的处理,以及向用户提供清晰的反馈信息。可访问性: 为 JavaScript动态DOM操作:基于用户输入显示与清除图片教程 标签添加 alt 属性,提供图片的文字描述,这对屏幕阅读器用户非常重要。

总结

通过本教程,我们学习了如何利用JavaScript进行基础的DOM操作,包括获取元素、处理用户输入、动态创建和插入图片元素,以及清除内容。关键点在于正确使用 innerHTML 属性(注意拼写),以及通过 document.createElement() 和 appendChild() 等方法以更健壮和安全的方式操作DOM。遵循现代JavaScript的最佳实践,如使用 const/let 和 addEventListener,将有助于编写出高质量、易于维护的代码。

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

以上就是JavaScript动态DOM操作:基于用户输入显示与清除图片教程的详细内容,更多请关注创想鸟其它相关文章!

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

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JavaScript动态更新HTML内容:实现基于用户输入的图片显示与清除
上一篇 2025年12月20日 12:47:55
Karate UI自动化中基于条件逻辑处理分页数据提取教程
下一篇 2025年12月20日 12:48:07

相关推荐

  • 作业帮App如何搜索试卷进行模拟考试练习_作业帮App试卷练习的系统化操作教程

    作业帮App如何搜索试卷进行模拟考试练习_作业帮App试卷练习的系统化操作教程作业帮App如何搜索试卷进行模拟考试练习_作业帮App试卷练习的系统化操作教程作业帮App如何搜索试卷进行模拟考试练习_作业帮App试卷练习的系统化操作教程作业帮App如何搜索试卷进行模拟考试练习_作业帮App试卷练习的系统化操作教程

    首先进入作业帮App,点击底部【发现】进入后选择【试卷】模块,通过筛选年级、科目和考试类型或搜索关键词查找目标模拟卷,随后可在线答题提交查看解析,或下载PDF打印后线下练习并用拍照搜题核对答案。 如果您想在作业帮App中查找试卷进行模拟考试练习,但找不到入口或操作流程不清晰,则可能是由于功能路径更新…

    2026年9月28日 • 用户投稿
    200
  • Java中ArrayList引用传递陷阱:避免数据意外修改的策略

    Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略Java中ArrayList引用传递陷阱:避免数据意外修改的策略

    本文探讨了Java中ArrayList作为引用类型在对象构造时可能导致的数据意外修改问题。当将同一个ArrayList实例传递给多个对象后,对该列表的后续操作(如清空或添加元素)会影响所有引用它的对象。核心解决方案是为每个需要独立数据副本的对象,实例化一个新的ArrayList,从而确保数据隔离和一…

    2026年9月28日 • 用户投稿
    000
  • 怎么在APP给豆瓣软件打1分_应用商店低分评价的操作步骤

    怎么在APP给豆瓣软件打1分_应用商店低分评价的操作步骤怎么在APP给豆瓣软件打1分_应用商店低分评价的操作步骤怎么在APP给豆瓣软件打1分_应用商店低分评价的操作步骤怎么在APP给豆瓣软件打1分_应用商店低分评价的操作步骤

    首先打开App Store搜索豆瓣,进入应用详情页后下滑至评分区域,点击“评分此应用”并选择1颗星,填写评论后发送;若无法找到应用,可通过右上角头像进入已购项目列表,找到豆瓣并重新进入评分页面完成1星评价;此外也可在电脑浏览器访问App Store网页版,登录Apple ID后搜索豆瓣,悬停星星图标…

    2026年9月28日 • 用户投稿
    100
  • Android动态复选框状态持久化:SharedPreferences实践指南

    Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南Android动态复选框状态持久化:SharedPreferences实践指南

    本教程详细阐述了如何在Android应用中持久化动态创建的复选框状态。通过利用SharedPreferences这一轻量级数据存储机制,我们能够确保用户在勾选或取消勾选动态生成的复选框后,其状态即使在应用重启或Activity重建后也能得以保留。文章将提供具体的代码示例和实现步骤,帮助开发者构建更具…

    2026年9月28日 • 用户投稿
    000
  • Java集合引用管理:确保对象创建时内部列表状态独立的策略

    Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略Java集合引用管理:确保对象创建时内部列表状态独立的策略

    本教程探讨Java中将集合作为参数传递给构造函数时,如何避免因引用共享导致的内部数据意外更改问题。当多个对象共享同一个可变集合实例,并在外部修改该集合时,所有引用该集合的对象都会受影响。文章将详细介绍通过创建新集合实例或进行防御性复制两种有效策略,确保每个对象拥有独立且稳定的内部数据状态。 问题背景…

    2026年9月28日 • 用户投稿
    100
  • 支付宝双十一花呗临时额度怎么开通_支付宝11.11花呗临时额度开通

    支付宝双十一花呗临时额度怎么开通_支付宝11.11花呗临时额度开通支付宝双十一花呗临时额度怎么开通_支付宝11.11花呗临时额度开通支付宝双十一花呗临时额度怎么开通_支付宝11.11花呗临时额度开通支付宝双十一花呗临时额度怎么开通_支付宝11.11花呗临时额度开通

    支付宝双十一期间可通过参与“马上提额”活动、领取限时额度券、完成信用任务或转入余额宝资金四种方式提升花呗临时额度,具体操作包括点击翻倍按钮、领取系统发放的额度券、提交公积金社保记录等材料审核通过后获取提额资格。 如果您在备战双十一购物节时发现花呗额度不足,支付宝通常会推出限时活动为用户提供花呗临时额…

    2026年9月28日 • 用户投稿
    100
  • PHP中静态数组的优势与应用详解

    静态数组是PHP中一个重要的概念,理解其特性有助于编写更高效、更易于维护的代码。本文将详细介绍静态数组与普通数组的区别,以及静态数组在实际开发中的应用场景。 静态变量的作用域与生命周期 在PHP中,使用static关键字声明的变量具有特殊的性质。与普通变量不同,静态变量在函数或方法调用结束后不会被销…

    2026年9月28日
    100
  • 拼多多官网入口直接打开 拼多多网页版不用登录

    拼多多官网入口直接打开 拼多多网页版不用登录拼多多官网入口直接打开 拼多多网页版不用登录拼多多官网入口直接打开 拼多多网页版不用登录拼多多官网入口直接打开 拼多多网页版不用登录

    拼多多官网可通过浏览器直接访问https://www.pinduoduo.com,无需下载App即可浏览商品,支持扫码登录、拼团购物、限时秒杀及百亿补贴活动,网页版界面简洁,分类清晰,具备关键词搜索与筛选功能,未登录也可查看商品详情,便于比价;平台覆盖多品类商品,设有专题推荐,提升选购效率,且网页端…

    2026年9月28日 • 用户投稿
    000
  • 豆瓣APP怎么看小组里自己的帖子_小组内个人发帖查找方法

    豆瓣APP怎么看小组里自己的帖子_小组内个人发帖查找方法豆瓣APP怎么看小组里自己的帖子_小组内个人发帖查找方法豆瓣APP怎么看小组里自己的帖子_小组内个人发帖查找方法豆瓣APP怎么看小组里自己的帖子_小组内个人发帖查找方法

    通过个人主页动态可直接查看按时间倒序排列的小组发帖与回复;2. 在小组内使用搜索功能输入用户名或关键词筛选个人发帖;3. 借助爱豆搜等外部工具输入ID和关键词高效检索历史帖子。 如果您在豆瓣小组中发布了多个帖子,但无法快速找到自己之前的发言记录,可能是因为缺少直接的“我的帖子”聚合功能。以下是几种在…

    2026年9月28日 • 用户投稿
    000
  • 夸克扫描提取的表格是图片怎么办_夸克表格识别结果转为Excel文件方法

    夸克扫描提取的表格是图片怎么办_夸克表格识别结果转为Excel文件方法夸克扫描提取的表格是图片怎么办_夸克表格识别结果转为Excel文件方法夸克扫描提取的表格是图片怎么办_夸克表格识别结果转为Excel文件方法夸克扫描提取的表格是图片怎么办_夸克表格识别结果转为Excel文件方法

    首先确认是否启用表格识别模式,打开夸克App进入扫描界面,选择历史记录中的表格图片,点击“重新识别”并选用“表格识别”模式,完成后导出为Excel;若效果不佳,可将图片保存至相册后使用Microsoft Lens等OCR工具提取表格并导出.xlsx文件;还可通过浏览器桌面模式登录夸克账号,利用电脑端…

    2026年9月28日 • 用户投稿
    000
  • Android RecyclerView优化:通过DiffUtil实现增量更新

    Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新Android RecyclerView优化:通过DiffUtil实现增量更新

    本教程旨在解决RecyclerView在数据更新时(尤其是新增数据)出现的全量刷新和闪烁问题。通过详细介绍Android DiffUtil机制,我们将学习如何高效地进行列表项的增量更新,从而提升用户体验,避免不必要的UI重绘,特别适用于实时聊天等频繁数据变动的场景。 在开发Android应用时,Re…

    2026年9月28日 • 用户投稿
    100
  • 方正证券APP怎么卖出股票_方正证券APP股票卖出操作指南

    方正证券APP怎么卖出股票_方正证券APP股票卖出操作指南方正证券APP怎么卖出股票_方正证券APP股票卖出操作指南方正证券APP怎么卖出股票_方正证券APP股票卖出操作指南方正证券APP怎么卖出股票_方正证券APP股票卖出操作指南

    首先登录方正证券APP,进入交易页面找到持仓股票,点击卖出并输入数量和价格(可选限价或市价委托),确认信息后提交订单,资金T+1日可提现。 在方正证券APP上卖出股票,操作简单直接。打开APP登录账户后,找到持有的股票,输入想卖的数量和价格,确认信息无误提交即可。整个过程几分钟就能完成,关键是注意交…

    2026年9月28日 • 用户投稿
    000
  • sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置

    sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置sublime怎么配置clangd进行c++代码补全_Clangd插件C++环境配置

    配置Clangd实现C++智能补全,需安装LSP插件和Clangd服务器,并通过compile_commands.json告知编译信息,从而获得语义级代码补全、实时诊断与重构支持,显著提升Sublime Text的C++开发体验。 在Sublime Text里配置Clangd来搞定C++代码补全,说…

    2026年9月28日 • 用户投稿
    000
  • 将Java或Groovy中的字符串转换为JSON对象

    将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象将Java或Groovy中的字符串转换为JSON对象

    将Java或Groovy中的字符串转换为JSON对象,需要根据实际情况进行分析。如果字符串是标准的JSON格式,可以直接使用JSON解析库进行转换。但如果字符串不是标准的JSON格式,则需要自定义解析器。 理解JSON格式 首先,我们需要明确标准的JSON格式。一个JSON对象是由键值对组成的,键和…

    2026年9月28日 • 用户投稿
    000
  • 免费漫画在线观看网站 – 2025年漫画平台推荐合集

    免费漫画在线观看网站 – 2025年漫画平台推荐合集免费漫画在线观看网站 – 2025年漫画平台推荐合集免费漫画在线观看网站 – 2025年漫画平台推荐合集免费漫画在线观看网站 – 2025年漫画平台推荐合集

    2025年主流免费漫画平台如快看漫画、哔哩哔哩漫画等资源丰富,覆盖国漫、日漫、韩漫,更新快且阅读体验佳,部分支持离线缓存与社区互动,适合多场景追漫。 小编推荐一、☞☞☞☞点击免费漫画在线观看网站汇总☜☜☜☜☜ 小编推荐二、☞☞☞☞点击2025年漫画平台推荐合集☜☜☜☜☜ 想找免费看漫画的地方,关键是…

    2026年9月28日 • 用户投稿
    000
  • 高德地图导航途中退出怎么办

    高德地图导航途中退出怎么办高德地图导航途中退出怎么办高德地图导航途中退出怎么办高德地图导航途中退出怎么办

    双击Home键或上滑进入多任务界面点击高德地图预览窗口即可恢复;2. 从通知栏下滑找到“正在导航”通知直接跳转;3. 若已关闭应用,重启后点击“继续导航”提示或“上次导航”入口恢复;4. 建议开启导航锁定、使用车载支架避免误触。 高德地图导航途中不小心退出了,不用担心,有几种方法可以快速恢复导航。 …

    2026年9月28日 • 用户投稿
    100
  • sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题

    sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题sublime代码提示不出来怎么办_解决Sublime代码自动补全失效问题

    代码提示失效多因插件未安装、语法识别错误或auto_complete被关闭。检查设置中是否启用auto_complete,安装Emmet、Anaconda等语言插件,确认文件语法正确,必要时清除缓存重建索引,可恢复补全功能。 Sublime Text 代码提示(自动补全)失效是不少用户在开发过程中遇…

    2026年9月28日 • 用户投稿
    400
  • AutoRDPwn v4.8:一款功能强大的隐蔽型攻击框架

    AutoRDPwn v4.8:一款功能强大的隐蔽型攻击框架AutoRDPwn v4.8:一款功能强大的隐蔽型攻击框架AutoRDPwn v4.8:一款功能强大的隐蔽型攻击框架AutoRDPwn v4.8:一款功能强大的隐蔽型攻击框架

    今天给大家介绍的是一款名叫autordpwn的隐蔽型攻击框架,实际上autordpwn是一个powershell脚本,它可以实现对windows设备的自动化攻击。这个漏洞允许远程攻击者在用户毫不知情的情况下查看用户的桌面,甚至还可以通过恶意请求来实现桌面的远程控制。 环境要求 PowerShell4…

    2026年9月28日 • 用户投稿
    000
  • 如何在Java中使用循环直到输入特定字符串?

    如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?如何在Java中使用循环直到输入特定字符串?

    本文将解释如何在Java中使用while循环接收用户输入,并根据特定字符串(例如 “quit”)来终止循环。文章将解释为什么不能使用 == 运算符比较字符串,并提供使用 equals() 方法的正确示例,确保循环在用户输入特定字符串时正常退出。 在Java中,控制循环的执行直…

    2026年9月28日 • 用户投稿
    000
  • 解锁AppleID(掌握AppleID解锁方法)

    解锁AppleID(掌握AppleID解锁方法)解锁AppleID(掌握AppleID解锁方法)解锁AppleID(掌握AppleID解锁方法)解锁AppleID(掌握AppleID解锁方法)

    appleid是苹果公司为用户提供的一个统一账户,用于在各种苹果设备上登录并享受各种服务。然而,由于各种原因,有时用户可能会遇到无法访问或解锁其appleid账户的问题。本文将为您介绍几种常见的方法,帮助您解锁appleid并恢复账户的访问权限。 法语写作助手 法语助手旗下的AI智能写作平台,支持语…

    2026年9月28日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信