Javascript jQuery错误追加null的子级
我有一个jQuery计时器,它在中似乎工作得很好。但是,我的wordpress站点上的相同代码在控制台中给了我一个错误:Javascript jQuery错误追加null的子级,javascript,wordpress,Javascript,Wordpress,我有一个jQuery计时器,它在中似乎工作得很好。但是,我的wordpress站点上的相同代码在控制台中给了我一个错误: 'Uncaught TypeError: Cannot read property 'appendChild' of null'. 似乎不明白我为什么会出现这个错误 var target_date = new Date('12/08/2014').getTime(); // variables for time units var days, hours, minutes
'Uncaught TypeError: Cannot read property 'appendChild' of null'.
似乎不明白我为什么会出现这个错误
var target_date = new Date('12/08/2014').getTime();
// variables for time units
var days, hours, minutes, seconds;
// get tag element
var countdown = document.getElementById("ribboncountdown");
var days_span = document.createElement("SPAN");
days_span.className = 'days';
countdown.appendChild(days_span);
// update the tag with id "countdown" every 1 second
setInterval(function() {
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
// do some time calculations
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
// format countdown string + set tag value.
if (days < 0) {
days_span.innerHTML = '<span>' + days * -1 + '</span>' + ' days since';
} else {
days_span.innerHTML = '<span>' + days + '</span>' + ' days to go';
}
//ribboncountdown.innerHTML = days + "d,;
}, 1000);
var target_date=新日期('12/08/2014')。getTime();
//时间单位变量
var天、小时、分钟、秒;
//获取标记元素
var countdown=document.getElementById(“ribboncountdown”);
var days_span=document.createElement(“span”);
days_span.className='days';
倒计时。追加子项(天/跨度);
//每1秒更新id为“倒计时”的标签
setInterval(函数(){
//找出从现在到目标之间的“秒数”
var current_date=new date().getTime();
var秒数左=(目标日期-当前日期)/1000;
//做一些时间计算
天=parseInt(还剩秒/86400);
剩余秒数=剩余秒数%86400;
//格式化倒计时字符串+设置标记值。
如果(天数<0){
天_span.innerHTML=''+天*-1+''+天起';
}否则{
days_span.innerHTML=''+days+''+days to go';
}
//ribboncountdown.innerHTML=days+“d,;
}, 1000);
您需要将代码包装在$(document).ready(function(){)中,以便在启动js之前准备好dom
因此,代码:
$( document ).ready(function() {
var target_date = new Date('12/08/2014').getTime();
// variables for time units
var days, hours, minutes, seconds;
// get tag element
var countdown = document.getElementById("ribboncountdown");
var days_span = document.createElement("SPAN");
days_span.className = 'days';
countdown.appendChild(days_span);
// update the tag with id "countdown" every 1 second
setInterval(function() {
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
// do some time calculations
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
// format countdown string + set tag value.
if (days < 0) {
days_span.innerHTML = '<span>' + days * -1 + '</span>' + ' days since';
} else {
days_span.innerHTML = '<span>' + days + '</span>' + ' days to go';
}
//ribboncountdown.innerHTML = days + "d,;
}, 1000);
});
$(文档).ready(函数(){
var target_date=新日期('12/08/2014')。getTime();
//时间单位变量
var天、小时、分钟、秒;
//获取标记元素
var countdown=document.getElementById(“ribboncountdown”);
var days_span=document.createElement(“span”);
days_span.className='days';
倒计时。追加子项(天/跨度);
//每1秒更新id为“倒计时”的标签
setInterval(函数(){
//找出从现在到目标之间的“秒数”
var current_date=new date().getTime();
var秒数左=(目标日期-当前日期)/1000;
//做一些时间计算
天=parseInt(还剩秒/86400);
剩余秒数=剩余秒数%86400;
//格式化倒计时字符串+设置标记值。
如果(天数<0){
天_span.innerHTML=''+天*-1+''+天起';
}否则{
days_span.innerHTML=''+days+''+days to go';
}
//ribboncountdown.innerHTML=days+“d,;
}, 1000);
});
问题是显示计数器丢失的html。为注销用户添加此html解决了问题。感谢帮助我在代码中看不到任何jquery,只有纯javascript。只有在没有id为“ribboncountdown”的元素时才会发生这种情况。添加以下内容后,您在控制台中看到了什么倒计时声明行:console.dir(倒计时);是否有id为ribboncountdown
Yes的元素此元素仅显示用户是否登录。该元素不显示用户是否登录