对Javascript创建元素的更改不会反映到DOM中

对Javascript创建元素的更改不会反映到DOM中,javascript,dom,Javascript,Dom,我有一个类,它应该在页面上显示灰色覆盖,显示文本和加载gif。代码如下所示: function LoadingIcon(imgSrc) { var elem_loader = document.createElement('div'), elem_messageSpan = document.createElement('span'), loaderVisible = false; elem_loader.style.position = 'ab

我有一个类,它应该在页面上显示灰色覆盖,显示文本和加载gif。代码如下所示:

function LoadingIcon(imgSrc) {
    var elem_loader = document.createElement('div'),
        elem_messageSpan = document.createElement('span'),
        loaderVisible = false;

    elem_loader.style.position = 'absolute';
    elem_loader.style.left = '0';
    elem_loader.style.top = '0';
    elem_loader.style.width = '100%';
    elem_loader.style.height = '100%';
    elem_loader.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
    elem_loader.style.textAlign = 'center';

    elem_loader.appendChild(elem_messageSpan);
    elem_loader.innerHTML += '<br><img src="' + imgSrc + '">';

    elem_messageSpan.style.backgroundColor = '#f00';

    this.start = function () {
        document.body.appendChild(elem_loader);
        loaderVisible = true;
    };

    this.stop = function() {
        if (loaderVisible) {
            document.body.removeChild(elem_loader);
            loaderVisible = false;
        }
    };

    this.setText = function(text) {
        elem_messageSpan.innerHTML = text;
    };

    this.getElems = function() {
        return [elem_loader, elem_messageSpan];
    };
}
var xml = new CwgParser('cwg.geog.cz/cwg.xml'),
    loader = new LoadingIcon('./ajax-loader.gif');
xml.ondataparse = function() {
    loader.stop();
    document.getElementById('cover').style.display = 'block';
};
loader.setText('Loading CWG list...');
loader.start();
xml.loadXML();

基于客户端的下载速度,xml.loadXML是一个通常需要3-8秒才能执行的函数,这就是我显示加载图标的原因。

您确定它没有附加到span中吗?您可以在所有浏览器的开发者工具中看到带有inspect元素的文档树。您如何调用LoadingIcon,然后调用setText。我们需要看看那个密码。