对Javascript创建元素的更改不会反映到DOM中
我有一个类,它应该在页面上显示灰色覆盖,显示文本和加载gif。代码如下所示:对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
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。我们需要看看那个密码。