0

私が最終的にやろうとしているのは、最初にボックスと画像を非表示にしてから、他の関数の結果に応じてボックスと画像を非表示にし(背景色を指定して)、機能に応じて画像を変更することですと呼ばれるものです。

以下のコードには 2 つの問題があります。

  • まず、実行時にボックスが表示されますが、画像は表示されません。
  • 2番目に、スクリプトの残りの部分によっていずれかの関数が2回呼び出されると(最初の呼び出しではエラーはスローされません)(これは計算機であるため、複数回発生します)、画像が存在しないかのようにエラーが発生します:

「JavaScript ランタイム エラー: 未定義または null 参照のプロパティ 'src' を設定できません」

JScript:

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

Barmar さん、考えさせられました。ありがとうございます。

関数の呼び出し中に DOM を調べた後、.innerText を使用するスクリプトの別の部分が HTML のコードを置き換えていたことが判明しました (なぜそれが行われるのかはまだわかりません)。 null 参照を呼び出します。を独自の div に配置すると、その問題が修正されました。

また、css で絶対に設定された位置属性を追加し、画像をビューに戻すことでその問題を修正しました。

助けてくれてありがとう、どうもありがとう!:)

于 2013-01-13T23:28:29.263 に答える