javascript - 选择对象内的值

标签 javascript

如何从videoid:uoSDF234获取第二值并使其倒计时?

  1. 首先我需要 "videoid":"uoSDF234" 作为第一个倒计时,然后下一个将是 "videoid":"0apq3ss" 等等(如果我添加更多数据)。
  2. 当我点击停止按钮时,label id="vstopresult" 将显示停止的 videoid第二个
  3. 倒计时将为 videolist 中的每个 videoid 循环。

var videoinfo = [{"startdatetime":"2014-12-21 00:23:14","totalsecondrun":"2019402310","videolist":
[{"videoid":"uoSDF234","second":"10"},{"videoid":"0apq3ss","second":"14"}]}];	
// JavaScript Document

var calduration = function(){
		$.each(videoinfo, function(i, obj) {
			$("#vstart").append(obj.startdatetime);
			$("#vtotoals").append(obj.totalsecondrun);
			
			$("#vid").append(videoinfo[0].videolist[0].videoid);
			$("#vlefts").append(videoinfo[0].videolist[0].second);

					var output = $("#vlefts");
					var isPaused = false;
					var time = videoinfo[0].videolist[0].second;
					var t = window.setInterval(function() {
						if(!isPaused) {
							time--;
							output.text(time);
						}
						if (time == 0){
							clearInterval(t);
						}
					}, 1000);
					
					//with jquery
					$("#vpause").on('click', function(e) {
						e.preventDefault();
						isPaused = true;
					});
					
					$("#vplay").on('click', function(e) {
						e.preventDefault();
						isPaused = false;
					});
					
					$("#vstop").on('click', function(e) {
						clearInterval(t);
						$("#vstopresult").append(time);
					});
				
		});
															

};
		
		
calduration();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>
        	<label id="vstart"></label><br>
        	<label id="vtotoals"></label><br>
            <label id="vid"></label><br>
            <label id="vlefts"></label><br>
            <input type="button" value="play" id="vplay"/>
            <input type="button" value="pause" id="vpause"/>
            <input type="button" value="stop" id="vstop"/><br>
            <label id="vstopresult"></label>
        </div>

最佳答案

一种粗略的可能性是使用setInterval,一个例子可能是。

var videoinfo = [{
        "startdatetime": "2014-12-21 00:23:14",
        "totalsecondrun": "2019402310",
        "videolist": [{
            "videoid": "uoSDF234",
            "second": "10"
        }, {
            "videoid": "0apq3ss",
            "second": "14"
        }]
    }],
    index = 0,
    timerEl = document.getElementById('timer'),
    countDown = 0,
    intervalId;

function startCountdown() {
    if (index < videoinfo[0].videolist.length) {
        countDown = videoinfo[0].videolist[index].second;
        intervalId = setInterval(function () {
            timerEl.textContent = countDown;
            if (countDown < 1) {
                clearInterval(intervalId);
                index += 1;
                setTimeout(function () {
                    startCountdown();
                }, 1000);
            } else {
                countDown -= 1;
            }
        }, 1000);
    }
}

startCountdown();
<div id='timer'></div>

关于javascript - 选择对象内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814803/

相关文章:

javascript - 无法使用 Prototype.js 登录 Tiny Tiny RSS API

javascript - JavaScript 中的公牛与奶牛

javascript - 为什么 d3 pack 布局会意外崩溃?

javascript - rails_admin 的css 和javascript 文件存放在哪里?

javascript - 在 Angular 组件之间重用参数

javascript - 使用单选按钮选择不同的值

javascript - 未从 Angular Directive(指令)触发输入的更改事件

javascript - "onclick"事件在 FF 和 Chrome 中不起作用

javascript - 根据值 crm 2011 更改字段的颜色

javascript - Lodash 或 Javascript - 按名称分组,然后按相等的字符串分组