【发布时间】:2014-07-03 00:18:41
【问题描述】:
我有
var val = document.getElementByClassName('duration').text();
var temp = val.split(":");
var total = 0;
var v;
for (var i = 0; i < temp.length; i++) {
v = parseFloat(temp[i]);
if (!isNaN(v)) total += v;
totalmins = parseInt(total / 60);
totalsecs = parseInt(total % 60);
total = totalmins + ":" + totalsecs;
}
document.getElementById("total-time").innerHTML = total;
对于html
<ol id="songs">
<li class="title"><a href="#" data-src="music/barryNice3.mp3">You don't really love me <span class="duration">3:50</span></a></li>
<li class="title"><a href="#" data-src="music/newjam.mp3">So done with you <span class="duration">4:23</span></a></li>
<li class="title"><a href="#" data-src="">I actually still love you<span class="duration">3:57</span></a></li>
<li class="title"><a href="#" data-src="">Call me back please <span class="duration">4:08</span></a></li>
<li class="title"><a href="#" data-src="">Bye baby bye <span class="duration">3:15</span></a></li>
<li class="title"><a href="#" data-src="">We together <span class="duration">3:46</span></a></li>
<li class="title"><a href="#" data-src="">Together Forever <span class="duration">4:05</span></a></li>
</ol>
我需要做的是获取持续时间的值并将它们加在一起,然后将该数字输出到 div。我完全是个菜鸟,我被困住了。
【问题讨论】:
-
您正在寻找 document.getElementsByClassName,它返回一个没有 text的 NodeList > 方法。
-
接下来……您要遍历集合中的项目。看起来您对遍历集合有一些了解。此外,您可以使用 data-duration 属性,而不是将持续时间放在一个跨度中吗?可能会为您节省一些额外的步骤...
-
当然,getElementsByClassName 中的错字可能是让我对此感到如此沮丧的原因。我没有注意到它,所以我最终以不同的方式接近它。
标签: javascript for-loop