jQuery Uncaught TypeError?

时间:2013-02-22 18:18:51

标签: jquery

我目前正在开发一个网站。我想要它做的是当你加载页面倒计时开始,15秒后出现一个按钮。

目前它在我的测试服务器和jsFiddle上运行良好。但是,当我将它移动到我的Web服务器时,它不起作用。我看了一下谷歌Chrome控制台,我收到以下错误。

downloadButton.parentNode.replaceChild(newElement, downloadButton);
Uncaught TypeError: Cannot read property 'parentNode' of null

以下是完整代码(另请参阅jsFiddle http://jsfiddle.net/6zchq/

var downloadButton = document.getElementById('download');
var counter = 15;
var newElement = document.createElement('p');
newElement.innerHTML = 'Getting your file, please wait 15 seconds.';
var id;

downloadButton.parentNode.replaceChild(newElement, downloadButton);

id = setInterval(function() {
    counter--;
    if(counter < 0) {
        newElement.parentNode.replaceChild(downloadButton, newElement);
        clearInterval(id);
    } else {
        newElement.innerHTML = "Getting your file, please wait " + counter.toString() + " seconds.";
    }
}, 1000);

我确定这是一个简单的问题,我无法弄清楚它为什么不起作用。

感谢任何帮助!

感谢。

2 个答案:

答案 0 :(得分:3)

尝试将代码包装在ready函数中。

原因是真实网络服务器上的加载延迟意味着您尝试访问尚未存在的元素。

答案 1 :(得分:1)

据推测,当DOM未完全加载且下载按钮元素尚不存在时,代码正在运行。在ready / onload处理程序中运行代码,或将Javascript放在页面的body标记的底部,以便在页面的HTML之后加载。