为什么这不是一个明确的整数类型,以及如何使其明确
Why is this not a clear integer type and how to make it clear?
我有这个代码:
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
当4376大于0 时,if (time > 0) {
为真
这个"时间"之后的time += 1000;
是43761000,它开始连接文本"4376"answers"1000",这证明JavaScript引擎认为时间是字符串类型。
如何明确时间应该是整数类型?
var time = $(this).attr("data-value");
var timeInt = parseInt(time) + 1000;
您可以通过一元+
使用强制,也可以将其封装在基数为10的parseInt
中。
wallboard.data.Timer = function () {
$("div[data-value]").each(function () {
var time = parseInt($(this).attr("data-value"), 10);
if (time > 0) {
time += 1000;
$(this).attr("data-value", time).text(TimeToText(time));
}
});
}
此外,您还可以搜索"javascript字符串到数字",您会发现数十亿的结果。
编辑:为什么不将数字字符串自动解释为数字?因为这将是一个非常令人不快的偏离惯例的行为:在JS中,你试图尽可能少地修改你的输出。如果你想把两个数字字符串连接在一起,你必须做很多技巧:
你必须做这样的,而不是var a = "1000" + "10"
来获得"100010"
var a = ["1000", "zz10"].join(""); // note the "zz", so it's not plain numeric.
a = a.replace("zz", ""); // replace "zz" with nothing.
// now `a` would be "100010"
您需要将用attr()
检索到的字符串转换为数字,例如
var time = +($(this).attr("data-value"));
您可以使用一元加号运算符将字符串属性值转换为数字(也可以使用parseInt())
var time = +$(this).attr("data-value");
在将字符串与1000相加之前,应该将其转换为整数。
var time = parseInt($(this).attr("data-value"));
相关文章:
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何重写下面的函数,使其不会't用于循环
- Ember选择绑定-如何使其着火
- 动态修改一个元素,使其与给定的选择器匹配
- 如何使用javascript操作SVG节点,使其在MS Edge中工作
- Javascript将数组转换为字符串并使其反向输出
- 如何添加两个变量而不使其在javascript中连接
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- 如何进行AJAX调用,使其仅在我单击包含在特定类中的链接时触发;id”;父元素的
- 选择一个元素,使其最近的具有特殊属性的父元素具有特殊值
- 缓存事件的变量而不使其全局化
- angularjs文本区域-如何使其与angularjs下拉列表中的选定值保持同步
- 当我在平板电脑中关闭应用程序时,如何使其保持会话有效
- 扩展在LeafletJS中是如何工作的,为什么我需要一个中介归因才能使其正确工作
- 如何在拖动对象时检测画布的中心线以使其居中
- 如何缩小大图像 (1600x1200) 的大小,使其适合大多数屏幕作为背景
- 如何过滤文件输入,使其仅显示一种类型的文件
- 为什么这不是一个明确的整数类型,以及如何使其明确
- 如何使用jquery操作元素,使其与css Selector相匹配"第n种类型”;
- 输入类型文本即使使其可编辑也不接受值