我是Javascript和Jquery的新手,刚刚开始学习,我从其他网站复制代码并做了一些细微的更改,我在点击图标时尝试更新计时器,但是我收到了这个错误: -
Uncaught TypeError: Cannot read property 'split' of undefined
找到后,我看到变量myTime未定义。它没有得到跨度值。这是我的代码: -
function updateTimer(expiryid) {
var myTime = $(expiryid+ ' span').html();
console.log(myTime);
var ss = myTime.split(":");
var dt = new Date();
dt.setHours(0);
dt.setMinutes(ss[0]);
dt.setSeconds(ss[1]);
var dt2 = new Date(dt.valueOf() + 1000);
var temp = dt2.toTimeString().split(" ");
var ts = temp[0].split(":");
expiryid.html(ts[1]+":"+ts[2]);
}
function initialize() {
// Some un-related code up here
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infoWindow.setContent(infoWindowContent[i][0]);
infoWindow.open(map, marker);
//console.log('expire_'+i);
updateTimer('#expire_'+i);
}
})(marker, i));
}
</script>
<span id="expire_4">06:51</span>
答案 0 :(得分:1)
您的html为CalculateToMax
但您正在尝试查询<span id="expire_4">06:51</span>
var myTime = $(expiryid+ ' span').html();
。问题是您的查询与您的代码不匹配。您的查询表明您希望存在ID为expiryid = '#expire_'+i
且具有子跨度的元素。你拥有的是一个标识为expire_<number>
的范围。更新查询以将span元素设为expire_<number>
,您应该好好去。
编辑我还注意到您正在尝试更新变量的html。将整个功能更新为:
$(expiryid)