【问题标题】:how to append 2 different images based on time using JavaScript?如何使用 JavaScript 根据时间附加 2 个不同的图像?
【发布时间】:2018-02-18 16:49:36
【问题描述】:

这是我目前的代码:

var d = new Date();
var time = d.getHours();
var img = new Image();
var img2 = new Image(); 
var div = document.getElementById('geometry2');

img.onload = function() {
 if (time < 12) {
  div.appendChild(img);
 };
else {
  div.appendChild(img2);
}

img.src = 'images/morning.png';
img2.src = 'images/other.png';

我不确定我的错误是什么,但没有一张图片显示。这是它所指的 HTML 元素的代码:

    <img src="images/geometry.png" id="geometry2" alt="">

【问题讨论】:

  • 不要认为 ;在第一个 if 块是必要的之后。也许它正在“关闭” if,并且 ELSE 永远不会执行并引发编译错误(参见控制台)。脚本在哪里调用?头部? html中的脚本标签?你确定 dom 已经加载了吗?
  • 它在一个单独的 JS 文件中
  • 好吧,您的事件处理程序可能应该在div.onload 而不是img.onload,并且正如@Pierre 建议的那样,也许它需要在DOM 的其余部分之后加载(即,就在@ 之前987654325@).
  • 在将图像附加到文档后,您将分配 src 的值。当图像被添加到文档中时,它不会有来源。
  • 我尝试了所有这些解决方案......仍然没有运气:(

标签: javascript html image frontend web-frontend


【解决方案1】:

这里有几个错误:

  • 用分号关闭if/else 这将给出一个javascript 控制台出错并停止进一步执行您的代码
  • 不关闭带有花括号的onload 事件的函数 - 这将与上述相同
  • 您正在尝试将 image 附加到 image - image 不是 图像集合,它是单个 imagesrc(来源)

修复:

  • 正确关闭函数
  • 去掉if后面的分号
  • div一个id
  • 在javascript中获取div
  • image 附加到div

固定代码:

<div id="divImages">
    <img src="../images/geometry.png" id="geometry2" alt="">
</div>

<script>        
    var d = new Date();
    var time = d.getHours();
    var img = new Image();
    var img2 = new Image();
    var div = document.getElementById('divImages');

    img.onload = function () {
        if (time < 12) {
            div.appendChild(img);
        }
        else {
            div.appendChild(img2);
        };

    img.src = '../images/morning.jpg';
    img2.src = '../images/other.png';
</script>

【讨论】:

  • 我大大简化了我的代码:var d = new Date(); var time = d.getHours(); var image; if (time &lt; 12) { document.write("&lt;img src='../images/morning.png'&gt;"); } else { document.write("&lt;img src='../images/other.png'&gt;"); }
  • 我意识到问题是图像文件夹实际上不在js目录中,而是在主目录中。所以我用“..”返回。不幸的是,虽然当我添加其他东西作为测试时,代码似乎工作得很好,但图像没有加载。使用“img src='../images/other.png”来引用图片有什么问题吗??
  • 嗨@poopyh3ad,你能提供你目前拥有的完整代码吗?我不确定您的文件夹结构是什么,是包含来自外部文件的脚本还是包含在 HTML 文件本身中等等。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 2023-03-21
  • 2017-03-25
  • 1970-01-01
相关资源
最近更新 更多