javascript动态更改图像src的位置 - 没有JQuery

2024-04-06

我有几个页面以相同的方式设置。每个页面大约有 10 到 15 张图像,如果单击它们,图像会发生变化并且变得无法单击。 我为此的代码是:

function ToggleOnclick(elID)
{
var el = document.getElementById(elID);
var loc = document.getElementsByClassName("wrapper");

if (el.onclick)
{
        // Disable the onclick
        el._onclick = el.onclick;
        el.onclick = null;
        el.src = loc.id + "/" + el.name + "Clicked.png";
}
}

图像的 html 是:

  ....
  <div class="content">
   <div class="wrapper" id="som">
   <div class="img0"><img src="som/doos.png" alt="doos" name="doos" id="doos" onclick="ToggleOnclick(this.name);" /></div>
   <div class="img1"><img src="som/beer.png" alt="beer" name="beer" id="beer" onclick="ToggleOnclick(this.name);" /></div>
   <div class="img2"><img src="som/bel.png" alt="bel" name="bel" id="bel" onclick="ToggleOnclick(this.name);" /></div>
   ....

因为我需要制作大约 20 个 html 文件,所以我想到将图像的源位置添加为包装器 div 的 id 标签。

我对 javascript 知之甚少,很难找到我想要的东西。也可能是因为我不是母语人士并且不知道我到底在寻找什么。

请记住我的文件:

  1. 由于我们客户的规格,必须在较旧的浏览器版本中工作
  2. 无法用 JQuery 修复(请不要在评论或答案中讨论这一点。我不能在这个项目中使用它。这不值得讨论。)

tldr;我需要一种方法来根据包装器 div 的 id 标签设置 img src


getElementsByClassName https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName给出一个集合而不是单个元素

将元素传递给ToggleOnclick所以你不必在函数中获取它

function ToggleOnclick(el)
{
//var loc = document.getElementsByClassName("wrapper")[0];//assuming there is only one wrapper
if (el.onclick)
{
        // Disable the onclick
        el._onclick = el.onclick;
        el.onclick = null;
        //el.src = loc.id + "/" + el.name + "Clicked.png";
        el.src = el.src.replace(".png", "Clicked.png");
}
}
<img src="som/doos.png" alt="doos" name="doos" id="doos" onclick="ToggleOnclick(this);" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript动态更改图像src的位置 - 没有JQuery 的相关文章

  • Nodemailer:从未收到问候语

    当尝试使用 Nodemailer 在 Node 内发送电子邮件时 https github com nodemailer nodemailer https github com nodemailer nodemailer 调用sendMai
  • 在 JavaScript 中定位提示弹出窗口

    我有一个如下所示的 JavaScript 提示 我想将提示放在屏幕中心 如何使用 javascript 做到这一点 function showUpdate var x var name prompt Please enter your na
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • 使组合高度等于浏览器窗口的高度

    http featuredfotografer com http featuredfotografer com Codemirror div 与 header div 结合占用的高度超过了浏览器的高度 我怎样才能使它们的总高度达到浏览器窗口
  • JavaScript:从 JavaScript 调用锚标记的点击事件

    我有一个带有锚标记的页面 在我的 JavaScript 中 我设置HREF锚标记的属性基于一些 if else 条件动态变化 现在我想以编程方式调用锚标记的单击事件 我使用了下面的代码 但没有成功 var proxyImgSrc CostM
  • AngularJS 输入字段未从控制器内的 setTimeout 更新

    我正在使用 AngularJS 支持的页面 并且我需要在只读输入文本字段内显示正在运行的时钟 与data ng model 为了模拟运行的时钟 我使用了 JavaScript 调度程序setTimeout每 1000 毫秒调用一个函数 该函
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 删除 Laravel Mix 中的临时文件

    我想在 laravel mix 构建期间或之后删除临时构建文件 这是我目前拥有的一些代码 但是del不工作 const mix require laravel mix const del require del compile sass i
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • JavaScript 访问密码字段值是否被视为存在安全风险?

    如果安全 正确地存储密码是良好的风格和安全性 那么对于要求用户输入密码的网页来说不应该也是如此吗 考虑这个例子
  • PhantomJS 网页内存消耗?

    是否有一种编程方式 因为我想在运行时自动执行 方式来查看网页在通过 PhantomJs 运行时使用了多少内存 我也在使用 casperjs 如果这有帮助的话 我已经搜索了很多但没有找到任何方法 PhantomJs 使用 QtWebKit 因
  • 如何生成 JavaScript 堆栈跟踪? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 关于如何以跨浏览器的方式在 javascript 中生成堆栈跟踪有什么建议吗 较新的浏览器 Chrome 和 Firefox 公开了一个允
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de

随机推荐

  • 在 Go 中不睡眠的情况下测试异步结果

    我的代码中有相当多的组件具有持久的 go 例程 用于侦听事件以触发操作 大多数时候 他们没有理由 除了测试之外 在完成该操作后发回通知 但是 我的单元测试正在使用 sleep 来等待这些异步任务完成 Send notification ev
  • JUnit 4 与 TestNG - 更新 2013 - 2014 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 JUnit 4 和 TestNG 曾经具有可比性 这两个测试框架有何优缺点 我今天比较了 TestNG 和 JUnit4 以我有限的测试框架经验
  • 将区间表示法解析为 Guava Range

    我需要将包含标准间隔表示法 即 8 100 6 10 等 的字符串解析为 Guava Range 对象 我将如何在 Java 中做到这一点 是否有一个实用程序包可以将字符串解析为构建 Guava Range 对象所需的组件 如果我们看一下这
  • 无法读取未定义的属性“native-element”

    我用的是离子2 我需要获取 HTML 元素值 其实我用的是viewchild 这是我的html模板代码 div class messagesholder last callFunction div p class chat date cha
  • 检索已排序的可手动实例内的隐藏标头

    使用时手动表 http handsontable com 似乎很难从上下文菜单中检索行的标题 考虑以下数据源 var data function return 1212 roman i ii iii 3121 numeric 1 2 3 4
  • 在 JavaScript 中覆盖对象的括号 [index] getter/setter?

    我目前正在构建一个双向链表 http en wikipedia org wiki Doubly linked list执行 我正在尝试 或希望 做的是使用 setter getter 来设置列表中的元素 就像在数组中一样 var index
  • 如何使 svg 元素(例如矩形)scrollIntoView?

    我在图形面板中有一个 svg svg 中的所有节点都在另一个面板中列出 我希望通过单击节点列表中的节点 svg 可以滚动到该节点 每个节点都是一个矩形 但我发现只有上边框在视图中 而节点的其余部分仍然在视图之外 有什么办法可以解决这个问题吗
  • 有人有使用 Python Zeep 和 Mock 对 SOAP API 进行单元测试的示例吗?

    我正在构建一个使用 Python zeep 访问第三方 SOAP API 的 Python 应用程序 我想使用模拟响应来实现一些单元测试 因为我并不总是有一个实时服务器来运行我的测试 我是单元测试的新手 不太确定从哪里开始 我见过使用模拟与
  • Java 因实现访问权限较弱的接口方法而出现错误

    当我编译这段代码时 interface Rideable String getGait public class Camel implements Rideable int x 2 public static void main Strin
  • 在codeigniter中上传doc和docx文件

    大家好 我在 codeigniter 中上传 doc 和 docx 文件时遇到麻烦 我检查了 config mime php 中的 mime 类型 谁能告诉我有什么问题吗 以下是我的 mime php 文件 doc gt applicati
  • Fabric js 或 imagick 从图像中删除白色

    我遇到了这种情况 我很难在谷歌上搜索并解释 我们公司在铝上打印照片 我们为客户提供两种选择 第一个选择是将他们的照片打印在铝上 就像 他们把照片给了我们 所以如果照片有白色 背景 图片以白色背景打印 简单的 像那样 第二个选项是我们可以打印
  • CSS3 FlexBox 过渡

    在这个 codepen 示例中 http codepen io DrYSG pen ovctn http codepen io DrYSG pen ovctn我创建了三个弹性盒 我想要的效果是 当鼠标悬停在中间框上时 它的尺寸会增大 演示中
  • 允许 Discord Rewrite 机器人响应其他机器人

    我有一个 Discord 机器人和一个用于 Discord 频道的 Webhook 设置 用于每小时准时发送一条命令 然而 Discord Rewrite 默认情况下似乎会忽略从其他机器人发送的命令 我该如何禁用此功能 我是否需要修改每个命
  • 在 will-change:transform 之后保持溢出:隐藏行为

    我有一个父元素和一个子元素 parent will change transform overflow hidden position absolute child position fixed top 80px left 80px wit
  • 更改 Cookie 域

    我使用 apache 作为我的应用程序 Web 服务器的代理 并希望即时更改与 sessionid cookie 关联的域名 该cookie有一个与之关联的 company com域 我想使用apache mod rewrite 或一些类似
  • MVC 3 DataAnnotations:不允许 HTML

    无论如何 是否可以在 MVC 3 中使用 DataAnnotations 来不允许在文本框中使用 HTML 我看到了一种允许使用 HTML AllowHTMLAttribute 的方法 但是如果我不希望用户在文本框中键入任何 HTML 并且
  • iPhone - 如何使用 facebook iOS sdk 发送应用程序请求

    我正在开发一个iPhone应用程序 我需要在其中向用户发送应用程序请求 邀请和应用程序礼物 在 API 中 给出了 FB Web 应用程序的所有方法和示例 我试图模仿它们 但它们都返回 null 作为响应 请指导我如何使用 FB iOS s
  • 使用 HTML 表单编辑 MySQL 重新编码

    我正在开发一个用于学习目的的小型 PHP 项目 我想从 MySQL 数据库检索保存的数据并让用户使用 HTML 表单对其进行编辑 我能够检索数据并显示在文本框中 问题是提交表单时数据没有更新 这是我到目前为止得到的代码 文件是为了自我更新而
  • Haxe 中参数的数量可变

    我正在寻找一种在 Haxe 中做这样的事情的方法 function foo args for arg in args 这里有人可以帮助我吗 这个问题很老了 所以 我以文档的形式回答 Haxe 从 4 2 开始支持剩余参数 function
  • javascript动态更改图像src的位置 - 没有JQuery

    我有几个页面以相同的方式设置 每个页面大约有 10 到 15 张图像 如果单击它们 图像会发生变化并且变得无法单击 我为此的代码是 function ToggleOnclick elID var el document getElement