【发布时间】:2015-01-01 16:05:11
【问题描述】:
我有这个代码:
wallboard.data.Timer = function () {
$("div[data-value]").each(function () {
var time = $(this).attr("data-value");
if (time > 0) {
time += 1000;
$(this).attr("data-value", time).text(TimeToText(time));
}
});
}
函数TimeToText() 只取一个毫秒值并将其输出为hour:seconds (00:00)。
属性data-value 包含一个毫秒值并存储在变量time 中。
这是我的“调试”输出:
var time = $(this).attr("data-value"); 时间 = 4376
if (time > 0) { 为真,因为 4376 大于 0
time += 1000; 在这个“时间”之后是 43761000 - 她开始连接文本“4376”和“1000”,这证明 JavaScript 引擎认为时间是字符串类型。
如何明确时间应该是整数类型?
【问题讨论】:
-
因为javascript中没有整数类型?
-
也许你可以使用javascript函数Number。例如。 var time = Number($(this).attr("data-value"));
-
@Kroltan 是的,可能是,但我也问了为什么 - 我只是忘记了它在我的身体 o_O。为什么 vm 不理解这是一个数字?对我们人类来说,这是一个很明显的数字,不是吗?
-
@Espen 因为这将是对约定的非常不愉快的偏离:在 JS 中,您尝试尽可能少地修改您的输出。然后,如果您想将两个数字字符串实际连接在一起,则必须做很多技巧才能做到这一点。我会在我的回答中解释更多。
标签: javascript jquery types