JavaScript .removeChild&.AppEndChildが働いていません
-
12-11-2019 - |
質問
.RemoveChildと。コードは次のとおりです。
<html>
<head>
<script type="text/javascript" language="javascript">
function bannerload(){
var banner = new Image();
banner.src = "IMG/banner.gif";
var loading = new Image();
loading.src = "IMG/loading.gif";
var bannerElement = document.getElementById("BANNER");
bannerElement.removeChild(banner);
bannerElement.appendChild(loading);
}
</script>
</head>
<body onload="bannerload()">
<div id="BANNER">
<img src="IMG/banner.gif" alt="Banner" />
</div>
</body>
</html>
.
しかし、それは機能していません。ページはbanner.gifでロードするだけで、このイメージはloading.gifに変更されません。なぜPlsを助けているのかを理解することはできませんか?
ありがとう!
解決
これが機能しない理由は、子供を追加して子供ではない子供を削除しようとしています。
バナーという名前の子の名前をバナーと呼ばれている子を削除しようとしています。
明らかに、バナーという名前の要素にはバナーという名前の子がありません。2つの選択肢がある場合は、子要素にIDを付与し、 `banner.parent.removeChild(バナー)または次のものを呼び出します。
例スナップ
var bannerElement = document.getElementById("BANNER");
//Banner only has one child.
var child = bannerElement.children[0];
bannerElement.removeChild(child);
bannerElement.appendChild(loading);
. 他のヒント
あなたの問題はあなたがバナーセメントに存在しない子供を削除しようとしているということです。
var banner = new Image();
banner.src = "IMG/banner.gif";
...
bannerElement.removeChild(banner);
.
あなたがそれを追加していなくても、あなたが新しいイメージを作ってから削除しているのかを見てください。私はあなたがこのようなものを試すべきだと思います:
var banner = document.getElementById('id_banner')
banner.src = 'IMG/banner.gif' // or 'IMG/loading.gif' depending on which one you want
...
<body onload="bannerload()">
<div id="BANNER">
<img id="id_banner" src="IMG/banner.gif" alt="Banner" />
...
. 所属していません StackOverflow