javascript - 无法获取跨度值

标签 javascript jquery google-maps

我是 Javascript 和 Jquery 的新手,刚开始学习,我从其他网站复制代码并做了一些细微的改动,我试图在点击图标时更新计时器,但我收到了这个错误:- 未捕获的类型错误:无法读取未定义的属性“split”

找到后,我看到变量 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>

最佳答案

你的html是<span id="expire_4">06:51</span>但是您正在尝试查询 var myTime = $(expiryid+ ' span').html();其中expiryid = '#expire_'+i .问题是您的查询与您的代码不匹配。您的查询表明您希望有一个 ID 为 expire_<number> 的元素有一个 child 跨度。您拥有的是 ID 为 expire_<number> 的跨度.更新查询以获取 span 元素作为 $(expiryid)你应该可以开始了。

编辑 我还注意到您正在尝试更新变量的 html。将整个函数更新为:

function updateTimer(expiryid) {
            var myTimeEl = $(expiryid); /* create jquery object*/
            var myTime = myTimeEl.html(); /*get the date string*/
            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(":");

            myTimeEl.html(ts[1]+":"+ts[2]); /*add new string to element using jquery objct*/
        }

关于javascript - 无法获取跨度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39024441/

相关文章:

javascript - 如何将 when() 与多个 deferred 一起使用以使效果非并发运行?

jquery - 在Grails 2.2.3和2.3.11之间更改JSON/XML默认响应格式

javascript - 在同一页面上有多个 jquery 选项卡

javascript - 通过 PHP 从 MySQL 中提取位置进行地理编码

javascript - react-google-maps fitBounds 和 panToBounds 不会缩放 map

javascript - 在 React.js 中使用 this.props 和 props 有什么区别?

javascript - 默认情况下突出显示的选项卡

javascript - 谷歌地图不显示标记

javascript - 来自数据库的 PHP 验证

javascript - 将 Mocha 与 synchronizedjs 结合使用