javascript - 更改图像 onLoad() - 我的失败在哪里?

标签 javascript

我想在页面加载后更改图像。我编写了一个 Java 脚本文件,但我不知道错误在哪里..我在控制台中也没有收到错误...

JavaScript:

function changeImage(){
    changeImage = document.getElementsByClass("carousel-indicators");
    changeImage = changeImage.getElementsByTagName("img")[0].src;

    actualImage = document.getElementsByClass("item active");
    actualImage = actualImage.getElementsByClass("img-wrapper-inner");
    actualImage.getElementsByTagName("img").src = changeImage;
}

我还使用以下方式调用该函数:

<img onload="changeImage()">

问候并谢谢您!

最佳答案

正如 qxz 指出的那样,您可能正在寻找 Document.getElementsByClassName方法。

此外,使用与方法名称相同的变量名称而不使用 var 声明新变量可能会导致意外结果。因为 JavaScript 在覆盖你的作用域方面没有问题。

最后但并非最不重要的一点是,getElementsByClassName 返回一个数组。没有一个 HTMLElement。您应该从数组中检索一个元素来进行操作。而不是尝试更改数组的 src 字段。

因此,组合这些项目将为您提供一些代码,例如:

function handleImageLoad() {
  var loadedImage = document.getElementsByClassName('loadableImage')[0].src;
  document
      .getElementsByClassName('loadState')[0]
      .innerHTML = 'Loaded image: ' + loadedImage;
}
<img class="loadableImage" src="http://lorempixel.com/200/200" onload="handleImageLoad()" />
<p class="loadState">Loading...</p>

关于javascript - 更改图像 onLoad() - 我的失败在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495171/

相关文章:

javascript - 如何使用 Js 将 data-bs-target 添加到按钮?

javascript - 语义用户界面 react : How to move Button from Left to Right

javascript - jQuery AJAX 和处理不同的数据类型

javascript - 使用 Angular 7 中的单个提交按钮创建具有动态表单字段的动态表单

对 Object.prototype 的 JavaScript 原型(prototype)链引用

javascript - 无法显示文本宽度

javascript - 除了使用API​​之外,是否还有其他方法可以从外部网页获取数据来开发比较购物网站?

javascript - 不使用 Tamper Monkey 运行用户脚本

javascript - 电话号码的正则表达式 (JS)

5.2 中带引号转义的 PHP Json 编码?