我在这个页面上:http://teamtreehouse.com/library/build-a-simple-iphone-app-ios7-2#getting-started
目标
如果声明如果它是匹配[0-9]|[0-9]:[0-9][1-9]
的值,则将其与其余部分一起添加时间并在 HH:MM:SS 中吐出最后一次。我可以手动将所有这些时间相加,但后来我想起我是一名程序员,所以现在我正在尝试编写脚本。
我试过:
if this.val() == ...
但是它给了我一个关于 this
的错误,所以我不知道从哪里开始。
基本上我想写一个脚本来计算总时间。
$('.achievement-steps ul li a p').each(function(index){
})
返回:
[
<p>2:13</p>
,
<p>1 objective</p>
,
<p>7:23</p>
,
<p>5 questions</p>
,
<p>6:19</p>
,
<p>5 questions</p>
,
<p>7:05</p>
,
<p>10:12</p>
,
<p>5 questions</p>
,
<p>5:27</p>
,
<p>2 objectives</p>
,
<p>1:16</p>
,
<p>1:20</p>
,
<p>5 questions</p>
,
<p>12:25</p>
,
<p>1 objective</p>
,
<p>6:58</p>
,
<p>5:47</p>
,
<p>3 objectives</p>
,
<p>3:24</p>
,
<p>5 questions</p>
,
<p>6:00</p>
,
<p>5:42</p>
,
<p>8:25</p>
,
<p>3 objectives</p>
,
<p>8:27</p>
,
<p>4 questions</p>
,
<p>7:18</p>
,
<p>1 objective</p>
,
<p>5:53</p>
,
<p>2:11</p>
,
<p>5 questions</p>
,
<p>18:02</p>
,
<p>5 questions</p>
,
<p>7:49</p>
,
<p>5 questions</p>
,
<p>7:55</p>
,
<p>5 questions</p>
,
<p>11:27</p>
,
<p>3 objectives</p>
,
<p>6:11</p>
,
<p>5 questions</p>
,
<p>7:30</p>
,
<p>5 questions</p>
,
<p>7:37</p>
,
<p>11:19</p>
,
<p>5 questions</p>
,
<p>7:08</p>
,
<p>5 questions</p>
]
最佳答案
代码:
// get texts
var textList = $('.achievement-steps ul li a p').map(
function(index,element){return $(element).html();});
// filter by regex
var timeList = $.grep(textList,
function(element,index){return element.match(/^\d{1,2}:\d{1,2}$/)!=null;});
// split by ":"
var tmp = timeList.map(
function(element){return element.split(":")});
// mins and secs
var mins = tmp.map(function(element){return element[0];}),
secs = tmp.map(function(element){return element[1];});
// sum
var totalMins = mins.reduce(function(a,b){return +a+(+b);});
var totalSeconds = totalMins * 60 + secs.reduce(function(a,b){return +a+(+b);});
console.log(Math.floor(totalSeconds/60) + 'Mins,' + totalSeconds % 60 + 'secs');
// 198Mins,43secs
我正在努力学习 jQuery.map , jQuery.grep , Array.prototype.reduce() ,所以这个答案可能比它应该的要复杂一些。
关于javascript - 从 div 中获取值的脚本,比较它是否是时间值,然后添加它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22410037/