我正在尝试使用一个非常简单的Javascript函数,该函数将使用.removeChild和.appendChild将一个图像更改为另一个图像。我的代码如下:

<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。我不知道为什么,需要帮助吗?

谢谢!

最佳答案

这不起作用的原因是您试图添加一个孩子并删除一个不是孩子的孩子。

您正在尝试从名为BANNER的元素中删除名为BANNER的子级。

显然,名为BANNER的元素没有一个名为banner的子级。您有两个选择,或者给id赋予child元素,然后调用`banner.parent.removeChild(banner)或以下内容:

片段示例

var bannerElement = document.getElementById("BANNER");
//Banner only has one child.
var child = bannerElement.children[0];

bannerElement.removeChild(child);
bannerElement.appendChild(loading);

关于javascript - Javascript .removeChild和.appendChild不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5984062/

10-13 01:07