0

我最终要做的是首先隐藏一个框和一个图像,然后根据其他功能的结果,然后取消隐藏框(通过给它一个背景颜色)和图像,并根据功能更改图像被称为。

下面的代码有两个问题:

  • 首先是在执行时出现该框,但图像没有。
  • 其次,当脚本的其余部分(它是一个计算器,因此会发生多次)第二次调用任一函数(第一次调用时不会引发错误)时,我会收到一个错误,就好像图像不再存在一样:

“JavaScript 运行时错误:无法设置未定义或空引用的属性 'src'”

脚本:

function one(input) {
    document.getElementById("result").style.background = "lightgray";
    document.getElementById("result").style.color = "green";
    document.getElementById("icon").src = "tick.png";
    document.getElementById("icon").style.visibility = "visible";
}
function two(input) {
    document.getElementById("result").style.background = "lightgray";
    document.getElementById("result").style.color = "red";
    document.getElementById("icon").src = 'cross.png';
    document.getElementById("icon").style.visibility = "visible";
}

HTML:

    <div id="result">
<img src="tick.png" id="icon" style="visibility:hidden">
</div>

和 CSS(尽管怀疑是必要的):

#result {


width: 820px;
height: 450px;
border-radius: 20px;
padding-top:25px;
padding-bottom: 25px;
color: green;
font-size:40pt;
text-align: center;
margin-top: 100px;
margin-right: 150px;
margin-left:420px;
}

#result img{

margin-top: 85px;
width:220px;
height: 190px;
    }
4

1 回答 1

0

巴尔玛让我思考,所以谢谢你!

在调用函数的同时查看 DOM 后发现脚本的另一部分使用 .innerText 替换了 HTML 中的代码(仍然不明白为什么会这样做)所以第一次调用我的标签已经消失了因此尝试调用空引用。把它放在自己的 div 中解决了这个问题。

还在css中添加了一个设置为绝对的位置属性,并通过将图像重新显示到视图中来解决该问题。

感谢各位大侠的帮助,不胜感激!:)

于 2013-01-13T23:28:29.263 回答