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动态图像显示与HTML内容管理教程_创想鸟

基于用户输入的JavaScript动态图像显示与HTML内容管理教程

基于用户输入的JavaScript动态图像显示与HTML内容管理教程

本教程详细介绍了如何使用JavaScript根据用户输入动态地在HTML元素中显示不同的图片,并实现内容的清除功能。文章强调了DOM操作的正确实践,包括使用innerHTML属性、动态创建HTML元素以及采用现代JavaScript变量声明方式(const/let)来优化代码结构和可维护性。

在现代web开发中,根据用户的交互动态更新页面内容是常见的需求。本教程将指导您如何通过javascript实现一个功能,即根据用户在输入框中输入的值,在页面上的指定区域显示不同的图片,并提供一个清除功能。我们将从基础的html结构开始,逐步完善javascript逻辑,同时指出常见的错误并提供最佳实践。

初始问题与常见误区

假设我们有一个简单的HTML表格结构,其中包含一个输入框、两个按钮和一个用于显示内容的段落元素。我们的目标是当用户输入一个数字并点击“Enter”按钮时,根据数字的大小在middleCell中显示苹果或梨的图片;点击“Clear”按钮时,清空middleCell的内容。

以下是最初的代码尝试:

HTML结构:

         

Hello

JavaScript代码:

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

var appleImg = "@@##@@";var pearImg = "@@##@@";var middleCell = document.getElementById("middleCell");function fruitTest(){    var myInput = document.getElementById("input1");    var inputValue = myInput.value;    if (inputValue > 100){        middleCell.innerHtml = appleImg; // 潜在错误点1    } else if (inputValue < 0){        middleCell.innerHtml = pearImg; // 潜在错误点1    }} function clearBox (){    middleCell.innerHtml = ""; // 潜在错误点1}

这段代码存在几个关键问题:

大小写错误: middleCell.innerHtml 应为 middleCell.innerHTML。JavaScript的DOM属性是大小写敏感的,innerHTML是正确的属性名,用于获取或设置元素的HTML内容。硬编码HTML字符串: 直接将完整的基于用户输入的JavaScript动态图像显示与HTML内容管理教程标签作为字符串赋值给innerHTML虽然可行,但在更复杂的场景下容易出错,且不利于维护。更推荐的方式是动态创建DOM元素。变量声明: 使用var进行变量声明在现代JavaScript中已不再是首选。const和let提供了更好的块级作用域和不变性控制,有助于减少bug并提高代码可读性。

优化后的解决方案

针对上述问题,我们可以采用更健壮和现代的JavaScript实践来重构代码。

HTML结构(保持不变):

         

Hello

优化后的JavaScript代码:

// 使用 const 声明常量,提高代码可读性和维护性const appleImgSrc = "https://codehs.com/uploads/afcd3bf7ea7baf3f7d571c6e24c352af";const pearImgSrc = "https://codehs.com/uploads/e0c442f8c020685fc8016f15c2547f1e";// 获取目标元素,使用 const 声明const middleCell = document.getElementById('middleCell');/** * fruitTest 函数:根据输入框的值动态显示图片 */function fruitTest(){    // 获取输入框元素及其值,使用 const 声明    const myInput = document.getElementById('input1');    const inputValue = Number(myInput.value); // 将输入值转换为数字进行比较    // 动态创建 img 元素    const imgElement = document.createElement('img');    let imageSet = false; // 标记是否设置了图片    if (inputValue > 100){       imgElement.src = appleImgSrc;       imageSet = true;    } else if (inputValue < 0){       imgElement.src = pearImgSrc;       imageSet = true;    }    // 在添加新内容之前,清空 middleCell 的现有内容    middleCell.innerHTML = '';     // 如果设置了图片,则将其添加到 middleCell 中    if (imageSet) {        middleCell.appendChild(imgElement);    } else {        // 如果没有匹配的条件,可以考虑显示默认文本或不显示任何内容        middleCell.textContent = '请输入有效范围内的数字';    }} /** * clearBox 函数:清空 middleCell 的内容 */function clearBox (){    middleCell.innerHTML = ''; // 使用正确的 innerHTML 属性清空内容}

代码解析与最佳实践

常量声明 (const):

appleImgSrc 和 pearImgSrc 被声明为 const,因为它们的URL在程序运行期间不会改变。middleCell 也被声明为 const,因为它始终指向同一个DOM元素。在函数内部,myInput 和 inputValue 也使用 const 声明,体现了局部变量的不变性或单次赋值。

数据类型转换 (Number()):

myInput.value 默认返回字符串类型。在进行数值比较(>或

动态创建DOM元素 (document.createElement(‘img’)):

而不是将整个基于用户输入的JavaScript动态图像显示与HTML内容管理教程标签作为字符串拼接,我们使用 document.createElement(‘img’) 创建一个真实的Image对象。通过 imgElement.src = appleImgSrc; 这种方式设置图片的源地址,更加直观和安全。这种方法避免了潜在的XSS攻击(如果src是用户输入的话),并且在处理更复杂的元素属性和事件时提供了更大的灵活性。

清空与追加 (innerHTML = ” 和 appendChild()):

在将新的基于用户输入的JavaScript动态图像显示与HTML内容管理教程元素添加到 middleCell 之前,我们首先使用 middleCell.innerHTML = ”; 清空了其所有现有内容。这确保了每次只显示一张图片,而不是在现有内容后追加。middleCell.appendChild(imgElement); 用于将新创建的基于用户输入的JavaScript动态图像显示与HTML内容管理教程元素作为子节点添加到 middleCell 中。这是操作DOM的标准方法。

条件处理与用户反馈:

在 fruitTest 函数中,我们增加了一个 imageSet 标记,确保只有在满足条件时才添加图片。如果输入值不满足任何条件(例如,在0到100之间),middleCell 会显示“请输入有效范围内的数字”,提供了更好的用户体验。

clearBox() 函数:

clearBox() 函数保持简洁,通过 middleCell.innerHTML = ”; 清空了 middleCell 的所有子元素和文本内容。

总结

通过本教程,我们学习了如何使用JavaScript动态地更新HTML元素的内容,特别是根据用户输入显示不同的图片。关键要点包括:

正确使用DOM属性,如 innerHTML 的大小写敏感性。优先使用 const 和 let 进行变量声明,以提高代码质量。动态创建DOM元素(document.createElement())而不是硬编码HTML字符串,以增强代码的健壮性、安全性和可维护性。注意数据类型转换,尤其是在处理用户输入时。清晰的逻辑流程,包括在添加新内容前清空旧内容,并提供适当的用户反馈。

掌握这些技术将使您能够构建更具交互性和动态性的Web应用程序。

基于用户输入的JavaScript动态图像显示与HTML内容管理教程基于用户输入的JavaScript动态图像显示与HTML内容管理教程

以上就是基于用户输入的JavaScript动态图像显示与HTML内容管理教程的详细内容,更多请关注创想鸟其它相关文章!

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

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Node.js数据库查询数据undefined问题深度解析与异步处理实践
上一篇 2025年12月20日 12:50:06
Node.js应用中PrismaClient的模块化管理与多文件访问最佳实践
下一篇 2025年12月20日 12:50:17

相关推荐

  • 为什么苹果手机副卡收不到短信

    为什么苹果手机副卡收不到短信为什么苹果手机副卡收不到短信为什么苹果手机副卡收不到短信为什么苹果手机副卡收不到短信

    苹果手机副卡无法收到短信的原因如下:副卡未激活iMessage 未启用蜂窝数据未打开短信中心设置不正确SIM 卡损坏网络拥塞运营商限制 为什么苹果手机副卡收不到短信? 苹果手机持有者在使用副卡时,可能会遇到收不到短信的问题。以下是一些常见原因: 1. 副卡未激活 检查您的副卡是否已激活。未激活的副卡…

    2026年9月25日 • 用户投稿
    000
  • Java布尔方法条件逻辑解析与预期行为校正

    Java布尔方法条件逻辑解析与预期行为校正Java布尔方法条件逻辑解析与预期行为校正Java布尔方法条件逻辑解析与预期行为校正Java布尔方法条件逻辑解析与预期行为校正

    本文旨在探讨Java中布尔方法条件表达式的常见误解,通过一个具体的kindaLiked()方法案例,详细分析代码逻辑与预期行为不符的原因。我们将演示如何精确定义条件,确保方法返回结果与业务逻辑一致,并提供示例代码、调试技巧及最佳实践,以帮助开发者编写更准确、可维护的布尔判断逻辑。 理解布尔方法与条件…

    2026年9月25日 • 用户投稿
    100
  • sublime怎么快速查看函数或类列表_sublime结构导航与符号浏览技巧

    sublime怎么快速查看函数或类列表_sublime结构导航与符号浏览技巧sublime怎么快速查看函数或类列表_sublime结构导航与符号浏览技巧sublime怎么快速查看函数或类列表_sublime结构导航与符号浏览技巧sublime怎么快速查看函数或类列表_sublime结构导航与符号浏览技巧

    使用Ctrl+R或Cmd+R打开“前往符号”面板,可快速定位函数和类;通过安装SideBarEnhancements等插件,在侧边栏查看文件符号树;配合LSP插件支持,使用F12实现“转到定义”跨文件跳转;自定义快捷键如Ctrl+Shift+R优化操作效率。 在使用 Sublime Text 编辑代…

    2026年9月25日 • 用户投稿
    300
  • 京东延迟发货赔付怎么操作?店铺如何避免延迟发货?小心!京东48小时未发货就赔30%?手把手教你申请赔偿+紧急报备技巧!

    京东延迟发货赔付怎么操作?店铺如何避免延迟发货?小心!京东48小时未发货就赔30%?手把手教你申请赔偿+紧急报备技巧!京东延迟发货赔付怎么操作?店铺如何避免延迟发货?小心!京东48小时未发货就赔30%?手把手教你申请赔偿+紧急报备技巧!京东延迟发货赔付怎么操作?店铺如何避免延迟发货?小心!京东48小时未发货就赔30%?手把手教你申请赔偿+紧急报备技巧!京东延迟发货赔付怎么操作?店铺如何避免延迟发货?小心!京东48小时未发货就赔30%?手把手教你申请赔偿+紧急报备技巧!

    最新数据显示,京东平台因延迟发货产生的纠纷投诉量同比激增35%,90%的商家因不了解规则面临高额赔付。本文将深度解析2025年最新赔付政策:买家可获订单金额30%的赔偿(最高500元),通过「联系商家→纠纷申请→提交证据」3步即可快速到账;商家则需掌握24小时报备黄金期、三级预警机制(12/6/2小…

    2026年9月25日 • 用户投稿
    100
  • 利用OSHI库监测与计算磁盘活动时间及传输速率

    利用OSHI库监测与计算磁盘活动时间及传输速率利用OSHI库监测与计算磁盘活动时间及传输速率利用OSHI库监测与计算磁盘活动时间及传输速率利用OSHI库监测与计算磁盘活动时间及传输速率

    本文详细介绍了如何利用Java OSHI库获取磁盘的活动时间与传输速率。通过HWDiskStore类的getReads()、getWrites()和getTransferTime()方法,结合时间间隔内的增量数据,可以精确计算出磁盘的活跃百分比和每秒传输次数。教程提供了示例代码,并逐步解析了数据采集…

    2026年9月25日 • 用户投稿
    000
  • 第一次买苹果手机怎么操作

    第一次买苹果手机怎么操作第一次买苹果手机怎么操作第一次买苹果手机怎么操作第一次买苹果手机怎么操作

    第一步:根据预算和需求选择苹果手机机型(如 iPhone 13、14),考虑翻新机或二手机。第二步:通过官网、零售店或经销商购买,检查包装完整并确认配件齐全。第三步:开箱,插入 SIM 卡,连接网络并激活。第四步:设置偏好,下载应用,个性化主屏幕。第五步:为手机安装保护套、屏幕保护膜并启用“查找我的…

    2026年9月25日 • 用户投稿
    000
  • 夸克怎么更新到最新版本_夸克App版本检查与升级方法

    夸克怎么更新到最新版本_夸克App版本检查与升级方法夸克怎么更新到最新版本_夸克App版本检查与升级方法夸克怎么更新到最新版本_夸克App版本检查与升级方法夸克怎么更新到最新版本_夸克App版本检查与升级方法

    首先检查应用商店是否有更新,其次在夸克App内“我的-设置-关于夸克”中查看版本并更新,最后可通过官网下载最新安装包手动升级。 如果您尝试在设备上使用夸克App,但发现某些功能无法正常使用或界面显示异常,可能是由于当前版本过旧导致与服务器不兼容。以下是检查并升级夸克App至最新版本的操作步骤: 本文…

    2026年9月25日 • 用户投稿
    200
  • iOS 18.2正式版评测_养老版本值得升级!

    iOS 18.2正式版评测_养老版本值得升级!iOS 18.2正式版评测_养老版本值得升级!iOS 18.2正式版评测_养老版本值得升级!iOS 18.2正式版评测_养老版本值得升级!

    ios 18.2 正式版来袭,是否值得升级?php小编鱼仔为你解读!ios 18.2 已正式发布,带来了一系列新功能和改进。作为苹果 ios 系统的重要更新,ios 18.2 是否值得升级?它能否解决困扰用户已久的 bug 并提升设备性能?为了帮助大家做出明智的决定,我们深入评测了 ios 18.2…

    2026年9月25日 • 用户投稿
    100
  • sublime怎么恢复上次打开的文件_sublime自动恢复文件会话设置方法

    sublime怎么恢复上次打开的文件_sublime自动恢复文件会话设置方法sublime怎么恢复上次打开的文件_sublime自动恢复文件会话设置方法sublime怎么恢复上次打开的文件_sublime自动恢复文件会话设置方法sublime怎么恢复上次打开的文件_sublime自动恢复文件会话设置方法

    Sublime Text 能自动恢复文件和布局,需确保设置中”remember_open_files”: true且”hot_exit”: false,正常关闭程序以保存会话,会话文件位于系统指定路径,若丢失可手动重命名备份文件恢复。 Sublime …

    2026年9月25日 • 用户投稿
    200
  • 使用OSHI库精确测量磁盘活动时间和传输速率

    使用OSHI库精确测量磁盘活动时间和传输速率使用OSHI库精确测量磁盘活动时间和传输速率使用OSHI库精确测量磁盘活动时间和传输速率使用OSHI库精确测量磁盘活动时间和传输速率

    本文详细介绍了如何利用OSHI库的HWDiskStore类来精确测量磁盘活动时间百分比和数据传输速率。通过获取磁盘读写操作、总传输时间等累积性统计数据的快照,并计算两次快照之间的差值,可以准确分析特定时间段内的磁盘活跃度及每秒传输次数,从而有效监控系统磁盘性能。 OSHI库与磁盘性能监控 oshi(…

    2026年9月25日 • 用户投稿
    100
  • 为什么苹果手机锁屏了还会亮

    为什么苹果手机锁屏了还会亮为什么苹果手机锁屏了还会亮为什么苹果手机锁屏了还会亮为什么苹果手机锁屏了还会亮

    苹果手机锁屏后仍会亮起的原因包括:息屏显示、抬腕唤醒、轻点唤醒、附近设备解锁和背景应用刷新。为了防止这种情况,用户可以禁用以下功能:息屏显示、抬腕唤醒、轻点唤醒、附近设备解锁和背景应用刷新。 苹果手机锁屏后为什么仍然会亮? 苹果手机锁屏后仍然会亮通常是因为以下原因之一: 1. 息屏显示功能 息屏显示…

    2026年9月25日 • 用户投稿
    200
  • VBA使用API_04:创建按钮

    VBA使用API_04:创建按钮VBA使用API_04:创建按钮VBA使用API_04:创建按钮VBA使用API_04:创建按钮

    在创建了窗体的基础上,接下来我们将进一步添加一个按钮来增强程序的交互性。按钮是windows系统中预定义的控件,因此无需额外注册,直接使用createwindowex函数即可。在创建窗体之后、显示窗体之前,我们可以插入代码来创建这个按钮。 按钮的父窗口句柄(hWndParent)应当设置为之前创建的…

    2026年9月24日 • 用户投稿
    200
  • 淘宝品牌库申请入口在哪里?需要注意什么?2025最新操作指南

    淘宝品牌库申请入口在哪里?需要注意什么?2025最新操作指南淘宝品牌库申请入口在哪里?需要注意什么?2025最新操作指南淘宝品牌库申请入口在哪里?需要注意什么?2025最新操作指南淘宝品牌库申请入口在哪里?需要注意什么?2025最新操作指南

    在淘宝平台成功入驻品牌库不仅能增强店铺的权威性,还能享受官方流量倾斜与营销资源支持。然而,大多数商家往往因找不到申请入口或材料反复被驳回而止步不前。本文将全面解析pc端与手机端的品牌库申请路径,并分享7条提高审核通过率的关键技巧。 一、淘宝品牌库申请入口详细指引 1. PC端操作路径 登录【淘宝商家…

    2026年9月24日 • 用户投稿
    100
  • 为什么苹果手机拍出来的照片发黄

    为什么苹果手机拍出来的照片发黄为什么苹果手机拍出来的照片发黄为什么苹果手机拍出来的照片发黄为什么苹果手机拍出来的照片发黄

    苹果手机照片发黄的原因有硬件因素(镜头镀膜氧化、色温传感器偏差)、软件因素(图像增强算法、色温设置)、环境因素(灯光环境、曝光不足)等。可通过校准色温、使用自然光、手动调整设置、使用第三方相机应用、后期处理等办法解决。 苹果手机照片发黄的原因 一、硬件因素 镜头镀膜氧化:随着时间的推移,镜头镀膜会氧…

    2026年9月24日 • 用户投稿
    100
  • 微软终止Cortana支持:Windows 10迎来重大调整

    微软终止Cortana支持:Windows 10迎来重大调整微软终止Cortana支持:Windows 10迎来重大调整微软终止Cortana支持:Windows 10迎来重大调整微软终止Cortana支持:Windows 10迎来重大调整

    N软网消息,微软近日宣布,将在Windows 10系统中停止对Cortana的支持。这是继Windows 11中取消Cortana支持之后的进一步动作,微软正将重心转移到Windows Copilot、Microsoft 365 Copilot以及Bing Chat等新技术上。 曾有人预计,微软会在…

    2026年9月24日 • 用户投稿
    100
  • 如何在Java中使用Collections.shuffle打乱列表

    使用Collections.shuffle()可随机打乱列表元素,但列表必须为可变类型。Arrays.asList()返回固定列表,直接使用会抛出UnsupportedOperationException;正确做法是将其复制到ArrayList等可修改列表中再调用shuffle。基本用法示例如Lis…

    2026年9月24日
    300
  • LINUX如何修改文件所有者_Linux更改文件属主与属组命令说明

    修改文件属主和属组可通过chown与chgrp命令实现,chown用于更改所有者及所属组,如chown user1:group1 file.txt,支持-R递归操作;chgrp仅修改属组,如chgrp developers file.txt。实际应用中常用于Web服务器权限配置,如chown -R …

    2026年9月24日
    100
  • VSCode 怎样通过快捷键快速折叠所有代码块 VSCode 快速折叠所有代码块的快捷键方法​

    在vscode中一键折叠所有代码的快捷键是ctrl + k后按ctrl + 0(mac为cmd + k再按cmd + 0),该操作可将函数、类、条件语句等所有可折叠区域全部收起,帮助快速概览文件结构、提升阅读与定位效率;此外,还可使用ctrl + shift + [折叠当前代码块、ctrl + k,…

    2026年9月24日
    100
  • vivo浏览器网页内容无法复制怎么办_vivo浏览器解除网页限制复制文本方法

    可通过阅读模式、打印预览、查看源代码、OCR识别或控制台命令五种方法解决网页内容无法复制问题,具体操作依次为:启用浏览器阅读模式后复制;利用打印预览界面选择文字;查看页面源代码搜索并提取文本;对截图使用图文识别功能获取文字;通过开发者工具控制台输入document.body.contentEdita…

    2026年9月24日
    400
  • sublime怎么配置eslint_sublime ESLint插件配置教程

    sublime怎么配置eslint_sublime ESLint插件配置教程sublime怎么配置eslint_sublime ESLint插件配置教程sublime怎么配置eslint_sublime ESLint插件配置教程sublime怎么配置eslint_sublime ESLint插件配置教程

    首先安装Node.js和ESLint,通过npm全局或项目内安装并初始化配置;接着在Sublime Text中使用Package Control安装SublimeLinter及SublimeLinter-eslint插件;然后根据需要在设置中配置ESLint可执行文件路径;再添加”&#8…

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

发表回复

登录后才能评论
关注微信